- Shipped
- 14. August 2026 um 02:57 UTC
- Author
- Kamo
- Commit
- 5c839bc
Die Migration ist gelaufen, also is_answered existiert und SearchIndexService schreibt jetzt es neben is_read und is_starred. Der Index hat zwei der drei aufgezeichnet Flaggen für seine ganze Existenz; von hier aus zeichnet es alle drei auf. Die index-Backed-Liste bleibt aus, und der Grund ist nicht "noch nicht ausgerollt". Seine Prüfung entscheidet, ob der Index die gleichen Nachrichten wie der Server enthält. Es kann nicht abrechnen, ob es die gleichen Flaggen hält, und es wird nie, weil Flaggen sich bewegen, ohne eine Nachrichtenanzahl oder eine UIDNEXT zu ändern. Das wäre überlebensfähig, wenn irgendetwas die indizierten Flaggen frisch halten würde. Nichts tut. MessageIndexer reagiert auf genau eine Sache - eine Nachricht, die ankommt - und schreibt die Reihe einmal, von der Nachricht, wie es in diesem Moment war. Lesen Sie es auf einem Telefon eine Stunde später und der Index sagt immer noch ungelesen, dauerhaft. Ein Ordner, der jeden Check passiert hier würde daher mit dem Lesen serviert werden, starrte und geantwortet Zustand jeder Nachricht hatte am Tag der Ankunft: ein Posteingang, der gelesene E-Mail als ungelesen zeigt, was schlimmer als ein Posteingang, der einen anderen Moment braucht, um zu laden. Die ehrliche Lösung ist es, Flaggen von IMAP und nur Umschläge aus dem Index zu nehmen. Das arbeitet und ist weniger wert, als es klingt: Flags lesen bedeutet, den Ordner zu öffnen, und sobald es geöffnet ist, fahren die Umschläge entlang in der gleichen Charge FETCH. Was ist links ist die Umschlagkonstruktion des Servers, abgewogen gegen eine zweite Quelle von Wahrheit für die Nachrichtenliste - und gegen einen IMAP-Pfad, der nicht mehr ausgibt pro Nachricht Hin- und Rückfahrt für Inhaltstyp und Nachrichten-ID. Gefertigt statt gestrichen, weil das teure Teil war das Lernen dieser, und die Abgestandene Kontrolle und seine Tests sind korrekt und wiederverwendbar für welche Version erweist sich als wert.