- Shipped
- 14 agosto 2026 alle ore 02:57 UTC
- Author
- Kamo
- Commit
- 5c839bc
La migrazione è in corso, così is answered esiste e SearchIndexService ora scrive accanto a is read e is starred. L'indice ha registrato due dei tre bandiere per tutta la sua esistenza; da qui registra tutti e tre. L'elenco indice-backed rimane spento, e il motivo non è "non è ancora uscito". Il suo controllo stabilisce se l'indice contiene gli stessi messaggi del server. Si'. non può risolvere se detiene le stesse bandiere, e non lo farà mai, perché bandiere muoversi senza cambiare un numero di messaggi o un UIDNEXT. Sarebbe sopravvivenza se qualcosa tenesse le bandiere indicizzate fresche. Niente. MessageIndexer reagisce esattamente a una cosa — un messaggio in arrivo — e scrive il riga una volta, dal messaggio come era in quel momento. Leggilo su un telefono un'ora più tardi e l'indice ancora dice non letto, permanentemente. Una cartella che passa ogni controllo qui sarebbe quindi servito con lo stato letto, recitato e risposto ciascuno ha avuto il giorno in cui è arrivato: una casella di posta che mostra di leggere come non letto, che è peggio di una casella di posta che richiede un altro momento per caricare. La soluzione onesta è quella di prendere bandiere da IMAP e solo buste dall'indice. Che cosa? funziona e vale meno di quanto suona: leggere bandiere significa aprire la cartella, e una volta che è aperto le buste cavalcare lungo nello stesso lotto FETCH. Che cosa è sinistra è la costruzione della busta del server, pesata contro una seconda fonte di verità per la lista dei messaggi — e contro un percorso IMAP che non emette più un per-messaggio giro per il tipo di contenuto e messaggio id. Tenuto piuttosto che cancellato perché la parte costosa stava imparando questo, e la controllo staleness e i suoi test sono corretti e riutilizzabili per qualsiasi versione Sembra che valga la pena avere.