Ci sono cose che noto da mesi, ma non ho mai segnalato, perchĂŠ non sono mai riuscito a ripeterle in modo coerente. Ma, alla fine, per caso, le ho catturate su video! (Quindi per favore perdonate le pause e la confusione nei movimenti del mio cursore.)
Le cose da osservare sono:
Non letti vuoto
Contribute > Feature che appare come âNormaleâ (nonostante sia tracciato, come mostrato nelle mie preferenze) e che appare come âTracciatoâ solo dopo un aggiornamento della pagina
Un argomento che appare misteriosamente tra i non letti (di diversi giorni fa, dalla categoria howto)
Il secondo punto è in qualche modo simile a un bug comune che vedo (ma che non sono mai riuscito a riprodurre in video), in cui faccio clic su un argomento da nuovo in una categoria che sto tracciando, ma il suo stato non viene mostrato come tracciato a meno che non aggiorni la pagina. (Mi chiedo se sia correlato a questo.)
Proprio prima di registrare questo, stavo cercando di riprodurre quel bug tracciando Contribute > Bug e facendo clic su uno dei suoi argomenti dalla scheda non letti. Non sono riuscito, ma dopo aver smesso di tracciare Contribute > Bug, la mia scheda non letti è stata riempita con circa 20 argomenti chiusi in Contribute > Bug risalenti al 2015, che sembra essere lo stesso bug del punto 3.
I canât consistently reproduce the first, where the correct notification level is only shown after a refresh (of a category, or a topic). Itâs been happening to me for months, but whenever I try to reproduce it, it doesnât happen.
The second, which I think is a bit more minor, but still a nuisance can be reproduced (for a limited time only) like so:
Clear /unread
Track a category currently set to âNormalâ
Go back to /unread and observe posts not previously in it
Iâve been able to do this with a number of categories, but only once for each. Once Iâve dismissed the posts from unread, they never appear again.
Consistently reproducing it takes a little more work, so hold onto your hats, itâs gonna get a bit crazy:
Go to unread in a category of your choosing which has a notification level of âNormalâ, observe nothing there:
So, the bug here is that previously opened topics in a category become tracked, and appear in unread (unless previously dismissed), when the category is tracked, whereas nothing happens to old not-opened-before topics.
To me, what should happen is either:
Nothing changes about the notification status of old topics in a category when it becomes tracked, previously opened or not.
or
All old topics become tracked when the category is tracked, but are automatically dismissed, so only new activity appears in the unread tab.
I lean towards the second solution, provided explicitly set notification levels on topics are kept.
I havenât investigated how this works with other notification levels, I imagine its the same, but I feel it would confuse things for the time being.
La prima riguarda il fatto che gli argomenti non vengono tracciati implicitamente come dovrebbero. Se lo fossero, tutti gli argomenti di Community Building > Praise dovrebbero apparire in questo passaggio:
Sembra che quellâelenco mostri solo gli argomenti con un record di tracciamento impostato su âtracciatoâ, e questo non funziona come previsto. Il comportamento corretto dovrebbe essere mostrare tutti gli argomenti con un record di tracciamento impostato su âtracciatoâ, nonchĂŠ tutti gli argomenti appartenenti a categorie tracciate. (Lo stesso discorso vale per lâopzione âosservaâ.)
Inoltre, sebbene abbia senso:
sembra che la stessa funzionalitĂ manchi quando un utente traccia una categoria. Non dovrebbe essere creato un record di tracciamento anche quando viene pubblicato un nuovo messaggio in un argomento?
La seconda parte riguarda la comparsa di argomenti apparentemente arbitrari come non letti quando si traccia una categoria (presumo sia un effetto collaterale del cambiamento dello stato di tracciamento degli argomenti passati da âregolareâ a âtracciatoâ), cosa che potrebbe essere risolta rimuovendo automaticamente tali argomenti dallo stato di ânon lettiâ.
Questa è una cosa che ho trovato un poâ di tempo fa, e si può trovare un thread qui (non sono del tutto sicuro del perchĂŠ sia stato spostato da Contribute > Bug a Contribute > Feature).
Il thread è piuttosto confuso perchĂŠ inizialmente pensavo che il problema fosse causato dallâimportazione iniziale da phpBB. Quindi ecco un tentativo di riassumere:
Si riduce al fatto che un topic non può essere contemporaneamente nuovo e non letto:
Anche se è implicitamente tracciato, il topic non appare in non letto perchĂŠ lâutente non lâha mai visualizzato
Il topic non appare in nuovo perchĂŠ supera la soglia di qualsiasi impostazione âConsidera i topic nuovi quandoâ tu abbia
Ă un problema difficile da risolvere, perchĂŠ far apparire ogni singolo vecchio topic in una categoria nella tua scheda ânon lettoâ non è davvero una buona esperienza utente.
âIgnorarli automaticamenteâ è piuttosto costoso a livello di database (verrebbe creato un nuovo record TopicUser per ogni singolo topic nella categoria che hai appena tracciato).
Non siamo davvero arrivati a unâidea ordinata per risolvere il problema, e la discussione si è un poâ spenta. Unâopzione che @sam ha proposto era
Allâepoca, pensavo che questa potesse essere una buona idea:
Ma
TL;DR: Non ho una soluzione, ma spero che questo renda il problema piĂš chiaro
From a practical perspective, that doesnât make sense to me. If I buy a book and put it on my shelf having not opened it, it is both new and unread.
Wouldnât it be possible to have an old topic (with no tracking record) only appear in unread when thereâs new activity on it?
So, just as a tracking record is created on new activity for topics in watched categories, a tracking record would be created on new activity for topics in tracked categories.
Combined with the above, couldnât we just dismiss topics where the tracking record has been changed to âtrackingâ as a result of tracking the category, which would mean the same user experience, without any additional database writes? (If I understand how tracking records, dismissing and TopicUser relate.)
This way, it seems to me, we could have a mailing list experience for tracking too!
Sure, I agree. I was talking purely about how it currently works in discourse.
I believe @sam thought this would have major performance issues
Iâm 99% sure a new record isnât created for tracked topics - @sam said âcreated when we notify usersâ, and tracking doesnât cause notifications. Maybe fixing this is the solution
Ok⌠Iâve done some testing in my dev environment. As a simplest possible repro:
Set previous visit timeout hours site setting to 0, to make testing quicker
User A sets âConsider topics new whenâ to âcreated since I was last hereâ
User A sets Category1 to tracked
User B posts in Category1
User A observes the topic in ânewâ, but does not open it
User A leaves the site
User A comes back to the site later, and User Bâs post is gone from the ânewâ tab
User B posts again in the same topic
The topic does not appear in either ânewâ or âunreadâ for User A, even though they are tracking the topic
That same repro works for âwatchingâ a category as well. A notification is sent, but no TopicUser row is created (checked on the rails console). It seems that this:
is not happening for some reason, both for watched and tracked categories.
Would it though? We already have topics listed in the latest tab and the new/unread tabs simultaneously. And the two (new and unread) are for different purposes: new is âshow me the newest topics on this siteâ and unread is âshow me topics Iâve expressed an interest in, but havenât (finished) read(ing)â. For new to achieve its purpose it has to have unread topics in it which are new, and for unread to achieve its purpose it needs to have new topics in it which are unread.
Currently the unread tab is rather dysfunctional.
Interesting, thanks for doing all this investigation! So it would seem like if this did actually happen (or more specifically, a TopicUser row was created on topic update, rather than notification, to include tracked categories), then our problems here would be solved. @sam thoughts?
I am fine to change the semantics of âtracked categoryâ so it means, if a category is tracked it will unconditionally show up in new regardless of your new duration, it does not mean this now.