# Whisper posts generate unread badges and show on user profile/topic list (last poster)

**URL:** https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539
**Category:** Bug
**Created:** [21 september 2015 om 20:22 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539 "2015-09-21T20:22:24Z")
**Posts on this page:** 18
**Page:** 1

<div class="post-metadata">

### Author: ![cpradio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cpradio/32/4970_2.png) [@cpradio](https://meta.discourse.org/u/cpradio)
#### Post date: [21 september 2015 om 20:22 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/1 "2015-09-21T20:22:24Z")

</div>

Did the following post use the whisper feature?  
[https://meta.discourse.org/t/how-do-i-stop-human-spammers/33514/11](https://meta.discourse.org/t/how-do-i-stop-human-spammers/33514/11)

If so there may be a few unwanted behaviors

1. Topic list says I have an unread post that I can’t see  
 ![](https://global.discourse-cdn.com/meta/optimized/3X/3/2/3272b50b24cc0742c19e9197f290029359f00684_2_690x51.png)

What I see

 ![](https://global.discourse-cdn.com/meta/original/3X/6/2/6259a313a5b60e817bfbd32f3a35cdcb6f71727b.png)

1. ~~Visiting ZogStrip’s profile I see the “supposed” post~~ (fixed)  
 ![](https://global.discourse-cdn.com/meta/optimized/3X/c/1/c185d6d2fdddc9edde1b4cff977d57d431fc1a49_2_690x80.png)

2. ~~I can see Zogstrip was the last poster on the Topic List (first screenshot)~~ (fixed)

3. ~~Whispers are viewable via expandable Replies button~~ (fixed)

4. ~~Badges granted via a Whisper post give away the existence of a whisper post.~~ (fixed)

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [21 september 2015 om 20:24 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/2 "2015-09-21T20:24:29Z")

</div>

Those are definitely bugs (cc @eviltrout)

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [21 september 2015 om 22:54 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/3 "2015-09-21T22:54:25Z")

</div>

Just pushed a fix for **#2**

[https://github.com/discourse/discourse/commit/4f7140fb3228ac8177500fd253ce549dbd9dea32](https://github.com/discourse/discourse/commit/4f7140fb3228ac8177500fd253ce549dbd9dea32)

Rest will follow tomorrow 😉

---

<div class="post-metadata">

### Author: ![eviltrout](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eviltrout/32/5275_2.png) [@eviltrout](https://meta.discourse.org/u/eviltrout)
#### Post date: [22 september 2015 om 16:25 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/4 "2015-09-22T16:25:26Z")

</div>

I’ve fixed **#3**. **#1** turns out is SUPER hard. I am thinking about it but it might require a large refactor ☹

[https://github.com/discourse/discourse/commit/9f89aefdd3a7ea4053721c32f50d8289fdbbaa25](https://github.com/discourse/discourse/commit/9f89aefdd3a7ea4053721c32f50d8289fdbbaa25)

---

<div class="post-metadata">

### Author: ![cpradio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cpradio/32/4970_2.png) [@cpradio](https://meta.discourse.org/u/cpradio)
#### Post date: [22 september 2015 om 19:13 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/5 "2015-09-22T19:13:45Z")

</div>

> [@eviltrout](#):
>
> #1 turns out is SUPER hard. I am thinking about it but it might require a large refactor ☹

Just a thought, but how are responses added then deleted before I return handled? As this would seem similar to that for normal users, but not for staff. Not sure if that is helpful or not.

---

<div class="post-metadata">

### Author: ![eviltrout](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eviltrout/32/5275_2.png) [@eviltrout](https://meta.discourse.org/u/eviltrout)
#### Post date: [22 september 2015 om 19:15 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/6 "2015-09-22T19:15:18Z")

</div>

That’s the first thing I thought of too. They have the same problem if they are at the end of a topic. I think we’ll have to circle back and revisit this in our next release.

---

<div class="post-metadata">

### Author: ![cpradio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cpradio/32/4970_2.png) [@cpradio](https://meta.discourse.org/u/cpradio)
#### Post date: [22 september 2015 om 19:19 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/7 "2015-09-22T19:19:02Z")

</div>

> [@eviltrout](#):
>
> I think we’ll have to circle back and revisit this in our next release.

Yeah, definitely cool with that. By far the bigger items were handled, and that’s appreciated.

> [@eviltrout](#):
>
> That’s the first thing I thought of too. They have the same problem if they are at the end of a topic

Bummer, I thought that may have been solved for that condition (as I hadn’t seen it for a while).

---

<div class="post-metadata">

### Author: ![cpradio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cpradio/32/4970_2.png) [@cpradio](https://meta.discourse.org/u/cpradio)
#### Post date: [24 september 2015 om 20:32 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/8 "2015-09-24T20:32:51Z")

</div>

1. Whispers are viewable via expandable Replies button  
User View: (TL1)  
 ![](https://global.discourse-cdn.com/meta/original/3X/6/4/64eacae3b60e3309b494221b35b384c1fae46116.png)

Admin View:

 ![](https://global.discourse-cdn.com/meta/original/3X/8/d/8dbb73e3e497d1c4e3faac8f1166d7bf9fe789ca.png)

Steps to Repro:

1. Reply as a Whisper directed to a post other than the OP.
2. As a normal user, click on the Replies expansion button.
3. See all the secrets that were meant to be hidden.

---

<div class="post-metadata">

### Author: ![cpradio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cpradio/32/4970_2.png) [@cpradio](https://meta.discourse.org/u/cpradio)
#### Post date: [24 september 2015 om 21:24 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/9 "2015-09-24T21:24:02Z")

</div>

Admittedly, this one will also be hard to fix (I think)…

1. Badges granted via a Whisper post give away the existence of a whisper post.  
 ![](https://global.discourse-cdn.com/meta/original/3X/8/f/8f24082ace75a18bfe7e11c45cd4cc8594b085fb.png)

Repro Steps:

1. Login as a Moderator/Admin
2. Perform action to be granted a badge
3. Login as a regular user (TL1)
4. View badges page, see link to whisper post (clicking it doesn’t show it though)

---

<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: [24 september 2015 om 21:36 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/10 "2015-09-24T21:36:49Z")

</div>

These are great catches, we will get them fixed and backported.

---

<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: [24 september 2015 om 22:24 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/11 "2015-09-24T22:24:52Z")

</div>

Sure @eviltrout these are good finds.

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [24 september 2015 om 22:37 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/12 "2015-09-24T22:37:38Z")

</div>

Just pushed a fix for **#5** 🍤

[https://github.com/discourse/discourse/commit/6b07575632618d0d64f2eb034d49a917ba47ac13](https://github.com/discourse/discourse/commit/6b07575632618d0d64f2eb034d49a917ba47ac13)

---

<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: [25 september 2015 om 00:17 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/13 "2015-09-25T00:17:25Z")

</div>

We’re also going to mark Whisper as “experimental” for now as it is more complex than originally thought.

---

<div class="post-metadata">

### Author: ![cpradio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cpradio/32/4970_2.png) [@cpradio](https://meta.discourse.org/u/cpradio)
#### Post date: [25 september 2015 om 00:18 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/14 "2015-09-25T00:18:43Z")

</div>

That’s fair enough. I’m still going to play with it over the next couple of days to see if anything else comes out of the woodwork (so to speak). I’ll keep updating this topic accordingly should I find anything additional that seems “out of the ordinary or unexpected”

Can we wiki the first post so I can mark the status of each (and others can contribute to it should they find something)?

---

<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: [25 september 2015 om 00:20 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/15 "2015-09-25T00:20:16Z")

</div>

I just fixed #4, and redid @zogstrip’s fix on badges (badges can no longer be granted for whispers)

I also fixed the upwards expansion which was broken

And marked the feature experimental…

Once this is reviewed I will backport into stable and beta.

[https://github.com/discourse/discourse/commit/2422289c8b7e70c74fc4e4c70597f449296be532](https://github.com/discourse/discourse/commit/2422289c8b7e70c74fc4e4c70597f449296be532)

---

<div class="post-metadata">

### Author: ![cpradio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cpradio/32/4970_2.png) [@cpradio](https://meta.discourse.org/u/cpradio)
#### Post date: [25 september 2015 om 22:07 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/16 "2015-09-25T22:07:22Z")

</div>

I haven’t uncovered any other mechanisms for uncovering/viewing a whisper post from a non-authenticated account. So this may be pretty well covered now. I’ve tried forcing a quoted post to reference a whisper, that didn’t work for non-auth accounts, accessing its raw data, et al.

Just wanted to give an update to the additional tests I attempted.

---

<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: [25 september 2015 om 22:34 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/17 "2015-09-25T22:34:54Z")

</div>



---

<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: [5 december 2016 om 08:06 UTC](https://meta.discourse.org/t/whisper-posts-generate-unread-badges-and-show-on-user-profile-topic-list-last-poster/33539/18 "2016-12-05T08:06:37Z")

</div>

This is now [fixed in latest](https://meta.discourse.org/t/long-term-whisper-posts-on-topics/45057/10) courtesy of @sam
