Ho appena notato che, quando c’erano risposte non lette, il conteggio delle risposte non lette sul topic dell’annuncio di Postgres 12 era 303 (cerchio blu con 303). Aprendo il topic e leggendo l’ultima risposta, il conteggio è diventato 1.
Il topic è impostato per eliminare automaticamente le risposte più vecchie di 5 giorni; attualmente c’è solo una risposta su quel topic.
Sembra che il conteggio delle risposte nei topic con eliminazione automatica e con post non letti non venga calcolato correttamente?
Ciò è accaduto su mobile; non ho pensato di controllare la versione desktop prima di aprire il topic e segnarlo come letto.
Sì, si tratta di un problema noto presente in Discourse praticamente dalla versione 1. Molte cancellazioni seguite da una risposta causeranno sempre questo disallineamento, fino alla prossima visita dell’argomento. Non importa se le cancellazioni sono automatiche o manuali.
Per chiudere il cerchio qui, una correzione in questo caso è estremamente e massicciamente spiacevole: il backend non conta mai effettivamente quanti post hai non letti; si basa sulla differenza tra highest_post_number e l’ultimo post_number che hai visitato negli argomenti dell’utente.
Se dovessi dare un numero a questo, se il mio unico compito fosse correggere questo bug mi ci vorrebbero diversi mesi e dovrei inventare un archivio dati personalizzato per farlo funzionare. Eseguire una query count(*) su ogni argomento non letto è fuori discussione.