Plainva 0.8.1: drei Wünsche, eine Woche
0.8.0 ging an einem Mittwoch raus. Am Donnerstagmorgen standen drei Feature-Wünsche und ein Fehlerbericht im Tracker, alle von Leuten, von denen ich vorher nie gehört hatte. Dieses Release ist das, was danach passiert ist.
Drei Wünsche
Die Wünsche drehten sich um die Datenbank-Ansichten. Kann eine Kanban-Karte die Checkboxen ihrer Notiz zeigen? Kann das Board Swimlanes haben und ein Limit je Spalte? Kann es eine richtige Schrift-Einstellung geben? Kann die Zeitleiste eine überfällige Aufgabe überfällig aussehen lassen?
Ich mag solche Anfragen, weil sie nicht „baue Feature X” sagen. Jede beschreibt einen Moment im Alltag, in dem die App zu früh aufgehört hat. Hier ist, was sich geändert hat.
Die Karte trägt die Checkliste der Notiz. Eine Kanban-Karte war ein Titel und ein paar Eigenschaften. Jetzt stehen die Aufgabenzeilen der Notiz — die schlichten - [ ]-Zeilen im Markdown — mit einem Fortschrittsbalken auf der Karte, Du hakst sie direkt dort ab, und „Unteraufgabe hinzufügen” schreibt eine neue Zeile in die Notiz. Nirgends wird etwas Neues gespeichert; die Karte liest, was die Notiz ohnehin sagt.
WIP-Limits und Swimlanes. Klick auf die Zahl im Spaltenkopf, eine Zahl tippen, und der Kopf wechselt in den Warnton, sobald die Spalte darüber liegt. Swimlanes sind eine zweite Gruppierungsachse aus einer beliebigen Eigenschaft; wer eine Karte auf eine Zelle zieht, setzt beide Eigenschaften. Ich habe mich lange gegen Swimlanes gesträubt, weil man sie leicht schlecht baut. Die Fassung, die jetzt drin ist, behält die Kopfzeile für die Spalten und legt die Spuren darunter, einklappbar, mit der Spur als Chip auf der Karte.
Eine Bedeutung von überfällig. Zeitleiste, Kalender, Karten, Tabelle: jede hatte ihre eigene Vorstellung davon, wie ein Datum aussieht. Jetzt gibt es eine Regel, und ein überfälliges Datum ist ein überfälliger Chip, wo immer die Zeile erscheint.
Schriften. Einen Schrift-Katalog gab es seit 0.8.0, aber er wohnte im eigenen Design. Jetzt ist er eine eigene Karte — Schrift, mit drei Zeilen: Oberfläche, Inhalt und Code — und gilt für jedes Design. Code bietet nur Monospace-Schriften an, weil eine proportionale Code-Schrift ein Fehler ist, den niemand absichtlich macht.
Ein eigenes Design
Das lag schon auf main, als die Wünsche kamen, und es ist das Erste, was Du im Dialog „Neu in Plainva” siehst. Mein Design hat eine eigene Seite: eine Grundstimmung, ein Hintergrund aus einem begrenzten Helligkeitsbereich, ein freier Akzent, die Rundung, und „übernehmen von” jedem eingebauten Design als Startpunkt.
Das Wort, auf das es ankommt, ist begrenzt. Ich wollte keinen Farbwähler, mit dem Du die App unlesbar machen kannst und der Dir dann die Schuld gibt. Also wählst Du drei Dinge, und die Textfarben werden daraus abgeleitet. Ist der Akzent zu blass für den Hintergrund, wird er auf mindestens 3:1 Kontrast angehoben, und die Seite sagt Dir, dass sie das getan hat. Am Telefon sitzen dieselben Regler im Bildschirm „Erscheinungsbild”.
Was schiefging
Zwischen 0.8.0 und diesem Release habe ich meinen eigenen verschlüsselten Test-Vault geöffnet und 185 Einträge in der Quarantäne gefunden.
Die Quarantäne ist der Ort, an den eine verschlüsselte Workspace Änderungen legt, die sie nicht prüfen kann. 185 davon würden etwas Ernstes bedeuten — ein Gerät, das am Protokoll manipuliert, oder ein Schlüssel, der abgeflossen ist. Es war keins von beidem. Es war ein Protokollfehler auf meiner Seite: eine Änderung wurde unter der neuesten Regelversion beurteilt, nicht unter der, die die Änderung selbst nennt. Jede Änderung, die vor einer Regel-Aktualisierung geschrieben wurde, fiel danach durch — und ein Gerät, das später beitritt, hätte einen leeren Vault aufgebaut.
Das ist jetzt behoben: eine Operation wird in der Regelversion beurteilt, auf die sie sich bezieht, die Gerätekette setzt dort an, wo die Workspace steht, und ein widerrufenes Gerät wird nur so weit gehört, wie sein Widerruf bezeugt ist. Der letzte Teil ist der, der für die Sicherheit zählt, und er ist der Grund, warum ich weiter sage: die Verschlüsselung ist experimentell. Das unabhängige Review, das so einen Fehler vor mir finden würde, hat noch nicht stattgefunden. Bis dahin bleibt das Abzeichen.
Zwei praktische Folgen. Wer eine verschlüsselte Workspace auf mehr als einem Gerät benutzt, aktualisiert alle — ein Gerät auf 0.8.0 urteilt noch nach der alten Regel. Und die Quarantäne-Karte nennt jetzt die Ursache jedes Eintrags und hat einen Diagnose-Export, damit der Bericht beim nächsten Mal sagen kann, was die Software gesehen hat.
Die Kalender, die Dein Telefon schon hat
Neu am Telefon, und aus einem anderen Grund als experimentell markiert: die Konten, die das Gerät bereits hat — EventKit auf iOS, der Kalender-Provider auf Android — erscheinen als eigener Anbieter, „Auf diesem Gerät”. Termine auf beiden, Erinnerungen auf dem iPhone.
Der Grund für das Abzeichen ist ehrlich und ein bisschen unangenehm: die native Schicht kompiliert im Build-System, aber während ich das schreibe, ist sie noch auf keinem echten Gerät in meinen Händen gelaufen. Sie ist in diesem Release, weil die Release-Builds die ersten Geräte sind, auf denen sie läuft. Wenn sie sich danebenbenimmt, hat die Kontokarte eine Diagnose, und ich will davon hören.
Außerdem in diesem Release
Das AppImage startet wieder auf Fedora 44 — der Bundler packt eine alte Wayland-Bibliothek ein, die Mesa 25 verweigert, und die App lädt jetzt vorab die Kopie des Systems (#85). Ein Fenster aus „In neuem Fenster öffnen” lässt sich auf macOS wieder schließen; es hatte gar keinen Schließknopf — die Sorte Fehler, die man nur auf Hardware findet, die man nicht besitzt (#86). Der Desktop-Updater liest sein Manifest jetzt von einer festen Adresse statt von dem Release, das gerade das Etikett „Latest” trägt. Und eine lange Liste kleinerer Dinge, in den Release Notes.
iOS: TestFlight ist öffentlich
Die iOS-Beta hatte eine interne Gruppe und eine Warteliste. Die Warteliste ist weg: der TestFlight-Link ist jetzt öffentlich, für iPhone und iPad ab iOS 16.4. Android hat seit einer Weile einen offenen Test bei Google Play. Beides steht in den Release Notes und auf plainva.com.
Was nicht drin ist
Das unabhängige Krypto-Review. Ein stabiler Mobile-Release in den Stores. Das Design mit zwei Stimmungen und Sync über Geräte, gegen das ich mich vorerst entschieden habe — ein Design ist eine Wahl je Gerät, bis mir jemand zeigt, dass es das nicht ist.
Alle Änderungen: https://github.com/plainva/plainva/releases/tag/v0.8.1