# Completely unread topics with recent replies should show as new

**URL:** https://meta.discourse.org/t/completely-unread-topics-with-recent-replies-should-show-as-new/75682
**Category:** Feature
**Created:** [12월 8, 2017, 12:15오후 UTC](https://meta.discourse.org/t/completely-unread-topics-with-recent-replies-should-show-as-new/75682 "2017-12-08T12:15:54Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [12월 8, 2017, 12:15오후 UTC](https://meta.discourse.org/t/completely-unread-topics-with-recent-replies-should-show-as-new/75682/1 "2017-12-08T12:15:54Z")

</div>

Continuing the discussion from [Watching and tracking implementation for tags and categories](https://meta.discourse.org/t/watching-and-tracking-implementation-for-tags-and-categories/46987):

There’s one piece of logic I don’t think we cover yet:

- “this is a topic” was created in 2015
- I join the forum in 2016. I track no categories, but I’m always on the lookout for 🆕 topics, i.e. topics that are completely new to me.
- “this is a topic” receives replies.
- the only way for me to spot this topic is to notice it as unopened in Latest.

In my opinion, the logic should be:

If a topic is completely unread and receives new replies, it should show up as 🆕 for me, so long as it also matches my `Consider topics new when` preference.

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [12월 8, 2017, 12:50오후 UTC](https://meta.discourse.org/t/completely-unread-topics-with-recent-replies-should-show-as-new/75682/2 "2017-12-08T12:50:23Z")

</div>

@sam’s previous response to this request was

> [@Watching/Tracking old Topics](https://meta.discourse.org/t/watching-tracking-old-topics/51606/6):
>
> I can see the appeal on unconditionally adding “tracked” categories into the “new” filter but technically making this work could end up being quite costly performance wise. Also, we have to keep a cap on new counts cause they are tracked in memory in the app, if you have 500k “new” topics it can brutally slow (and kind of pointless) Honestly, I am really unsure what the best course of action is here.

---

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [12월 8, 2017, 1:36오후 UTC](https://meta.discourse.org/t/completely-unread-topics-with-recent-replies-should-show-as-new/75682/3 "2017-12-08T13:36:10Z")

</div>

Yes, I believe the solution I’m after is exactly this:

> [@Watching/Tracking old Topics](https://meta.discourse.org/t/watching-tracking-old-topics/51606/7):
>
> Perhaps, one thing that is “cheap” that we could do.
> 
> If a topic in a tracked category is bumped, add it back to “new” for whatever the new duration is.
> 
> Still would feel somewhat odd.

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [12월 8, 2017, 1:44오후 UTC](https://meta.discourse.org/t/completely-unread-topics-with-recent-replies-should-show-as-new/75682/4 "2017-12-08T13:44:30Z")

</div>

I actually implemented this in a plugin, but I think the concern was that making that change in core could potentially cause a lot of confusion for existing users, especially those that have “consider topics as new when I haven’t viewed them yet” as their setting.

> [@Watching/Tracking old Topics](https://meta.discourse.org/t/watching-tracking-old-topics/51606/13):
>
> ```plaintext
> after_initialize do
> require_dependency 'topic_query'
> class ::TopicQuery
> def self.new_filter(list, treat_as_new_topic_start_date)
> list.where("topics.bumped_at >= :created_at", created_at: treat_as_new_topic_start_date)
> .where("tu.last_read_post_number IS NULL")
> .where("COALESCE(tu.notification_level, :tracking) >= :tracking", tracking: TopicUser.notification_levels[:tracking])
> end
> end
> end
> 
> ```

---

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [12월 8, 2017, 1:52오후 UTC](https://meta.discourse.org/t/completely-unread-topics-with-recent-replies-should-show-as-new/75682/5 "2017-12-08T13:52:15Z")

</div>

You mean, not expecting a topic to be 🆕 when it is actually many years old?

Yeah it can be a mild shock, but I don’t see how missing the topic altogether is a better trade off. There are additional UI hints we could throw in if we get a lot of reactions to this.

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [12월 8, 2017, 1:54오후 UTC](https://meta.discourse.org/t/completely-unread-topics-with-recent-replies-should-show-as-new/75682/6 "2017-12-08T13:54:29Z")

</div>

> [@erlend\_sh](#):
>
> but I don’t see how missing the topic altogether is a better trade off

I agree 100%, better to fix the functionality for the long term even if it causes a little confusion to start with 🙂 .

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [12월 8, 2017, 10:33오후 UTC](https://meta.discourse.org/t/completely-unread-topics-with-recent-replies-should-show-as-new/75682/7 "2017-12-08T22:33:10Z")

</div>

I would like to hear @sam’s opinion on this, I think the risk is too high personally.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [12월 8, 2017, 10:47오후 UTC](https://meta.discourse.org/t/completely-unread-topics-with-recent-replies-should-show-as-new/75682/9 "2017-12-08T22:47:03Z")

</div>

I really don’t know, this is very complicated and full of compromise dragons.

There is one edge case that kind of makes sense to handle though.

- IF you have “Consider topics new when I haven’t viewed them yet”

- AND an old topic you never saw gets a reply

- AND the topic was created PRIOR to the time you created an account

- THEN consider topic new

This is rather edge casey, but makes complete sense.

I am less easy about the default of “Consider topics new when created in the last 2 days”

We are very explicit about the copy there, so we would basically be lying and people who simply “ignore” to get rid of new stuff will get really really annoyed.

---

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [7월 25, 2018, 4:12오전 UTC](https://meta.discourse.org/t/completely-unread-topics-with-recent-replies-should-show-as-new/75682/10 "2018-07-25T04:12:05Z")

</div>

Would still love to see an improvement here. I completely missed [this topic](https://meta.discourse.org/t/drafts-view-in-profile/13720/6) because I never originally tracked it.

> [@Completely unread topics with recent replies should show as new](https://meta.discourse.org/t/completely-unread-topics-with-recent-replies-should-show-as-new/75682/3):
>
> Yes, I believe the solution I’m after is exactly this:
