giseldo/neodataset huggingface dataset:
Latest / Top feed: Feed composition spec

- [ ] Users can toggle between 2 separate views of their Newsfeed:
  - Latest
    - Boost rotator
    - 3x Latest posts
    - 3x Top posts + See more link
    - Latest feed (infinite scroll)
  - Top
    - Boost rotator
    - Top feed (infinite scroll)
- [ ] Default users to "Latest" view
- [ ] If user manually toggles to a one view of the Newsfeed, remember that state and return users to that view on subsequent visits to the Newsfeed.

### Designs

https://www.figma.com/proto/hJWtzurKSdqE1LeznT487N/Newsfeed-%5BWeb%5D?page-id=0%3A1&node-id=3%3A3333&viewport=241%2C48%2C0.5&scaling=min-zoom&starting-point-node-id=3%3A3333

Updated designs above.

Design Notes:

* Boost rotator present for both top and latest feeds. Always number 1 position. This will be addressed in a future issue.
* A highlights section (top 3 top posts) will appear in feed, just after the third post, or fourth post if you include the boost rotator.

![image](/uploads/5e0ad5dc919b43e61d2dbfc2f2da978b/image.png)

----

Background:

### Target problem

The changes to the Newsfeed are targeted at all users and aimed to improve the relevance of the first posts the user sees when visiting the Newsfeed.

### Hypothesis

By prioritizing "Top" posts for all users, we can improve relevance of the first-seen posts on the Newsfeed. However, Minds users greatly value their traditional chronological "Latest" feeds. So we want to introduce a new default view of the Newsfeed that combines elements of "Top" with the traditional "Latest" feed.

We're mindful of potential backlash from a subset of Minds users who don't want the "Top" posts summary, so we'll offer them the option to view their old feed. For users who prefer the "Top" sorting, we'll give them the option to see a Newsfeed completely organized by "Top," not just the condensed view of the default Newsfeed.

### What is the primary metric that this change is aimed to improve?

- Engagement on the Newsfeed (likes, comments)
- Duration of sessions on the Newsfeed

### What is the current state of this metric, and what is the improvement goal?

Unknown

### How does this change affect the desired metric?

With the new "Top" widget in the default Newsfeed view, we ensure that users see (a) content that they haven't seen before, and (b) content that is most likely to be engaging.

### What counter metric will ensure that an increase in the primary metric is a positive for the product?

We should measure the % of users who set a preference for the "Latest"-only feed, as a measure of dissatisfaction with the new feature.

### Size estimate

Unknown

### WIP Prototype

https://www.figma.com/proto/hJWtzurKSdqE1LeznT487N/Newsfeed-%5BWeb%5D?page-id=0%3A1&node-id=3%3A3333&viewport=241%2C48%2C0.5&scaling=min-zoom&starting-point-node-id=3%3A3333

Story points: 5.0
Refactor experiments to use events instead of contexts

## The Problem

Currently all users are bucketed into experiments on app initialisation and not when they actually see the experiment. This was done so that pageviews could register the experiments as contexts when someone lands on the site. 

Issues arise when experiment reports rely on only including users who have seen the experiment to be included. For example, an experiment that forwards users to discovery instead of the newsfeed after registration should not just only include users that have just signed up, it should also only apply to users that do not have any referral logic (ie. take newly loggedin/registered users back to previous page). 

## Proposed change

- [x] Create a new iglu schema `growthbook_event` which includes the experiment_id that the user is in
- [x] Remove backend registration and client on init logic
- [x] Record a `growthbook_event` via snowplow when an experiment is run
- [x] To avoid unnecessary events, cache a reference to the events so that they only get sent every 24 hours.
- [x] Now that we support psuedo_id, attach both the anonymous_id and user_id to growthbook events

Story points: 8.0
Expose bot accuracy scores on front end for admins

In order to (a) help with making admin decisions, and (b) QA check the scores so that admins can see what Tasman is spitting out and provide feedback on the effectiveness of the current scoring, we'd like to make Tasman-derived trust scores visible on the front end of Minds website for users with Admin access.

https://www.figma.com/file/0udJVSZSxc2Ng1Knbn20uk/Channel-Trust?node-id=2%3A2

> Designs are in progress

- Given Tasman trust scores for users are available,
- and UserA is logged into Minds,
- and UserA's account has Admin access,
- when any user avatar + name component is displayed,
- then a number is displayed alongside the avatar + name that exposes the Tasman trust score for that user.

Proposed approach for displaying the correct colour based on a 0-100 value -> https://jsfiddle.net/JeancarloFontalvo/1sco9Lpe/3/

### Notes

* Uniquely an admin feature for the first iteration
* In the future this will be visible to all users, including an explainer (via a modal) about the score, why scores are valuable and how to improve scores.

Story points: 3.0
Posts repeat in Groups feed

We have a few reports of posts repeating in groups. [This Gitlab issue](https://gitlab.com/minds/front/-/issues/5172) makes reference to the issue in a test Group. Additionally, a user alerted me that [this Group](https://www.minds.com/groups/profile/569272650258460672/feed) exhibits the issue, though notably the posts repeat only after scrolling VERY deep into the timeline (~100+ posts). The pinned comment re-appears in the feed, after which the feed appears to loop.

Note timestamps on the posts in this sequence:

![image](/uploads/8506d9700a1c3946be4513c2542eb9fd/image.png)

![image](/uploads/ea47212d127ef59d3848a0b5f5cf30fb/image.png)

![image](/uploads/4a7b2fd4af32d5038aa0dd314e204527/image.png)


### Replication steps

Effect can be seen here:

https://www.minds.com/groups/profile/1325523578161991683/feed

To replicate a base-case:

1. Make a new group
2. Make a post titled 1, and a post titled 2
3. Refresh

Story points: 5.0
Show posts from subscribed Groups in Newsfeed

Users like Groups because they help keep up with specific interests, but report that it's difficult to actually keep up with them because the posts in Groups are not obvious from the Newsfeed.

So we'd like to experiment by including new posts from subscribed Groups in the user's Newsfeed.

- Given UserA is a member of GroupX,
- and there are new posts made inside GroupX,
- when UserA views their Newsfeed,
- those posts from GroupX are included in the chronological Newsfeed sorted along with posts from subscribed channels,
- and the posts indicate that they are from GroupX.

![image](/uploads/b9a0d72b179fb86b74337554573f10bb/image.png)

(Example post from a group with the `(Meme Supreme)` label indicating its source.)

Story points: 5.0
Remove sidebar chat widget from Groups

Remove the sidebar chat widget from Groups pages.

- [x] Remove sidebar chat widget
- [x] Remove collapse/expand function for the right column
- [x] The right column is still there, but empty
- [x] Disable on backend too. 403 status.
- [x] Remove associated Cypress tests.
- [x] Make mobile card @msantang78 

### Before:

![image](/uploads/4ba4ca0d9d7ce592c04fb693539b2322/image.png)

### After:

![image](/uploads/4fa266fbbf9d32376526493a8ff0d708/image.png)

Story points: 3.0
Experiment: Newly-registered users land on /discovery/top

When a user completes a new registration on the web app, the user is landed on the newsfeed.

Hypothesis: 2-hour retention will improve if we instead land users on /discovery/top feed, where new users can explore content on Minds, and continue with engagements they may have attempted on the guest mode home page.

- [ ] Remove a/b test of discovery-homepage
- [ ] 50% to newsfeed, 50% to  /discovery/top

Story points: 3.0
Sprint Planning - Sprint::6 (Dec 15, 2021 – Jan 4, 2022)

**Sprint:** *iteration:"Sprint::6 (Dec 15, 2021 – Jan 4, 2022)"

:exclamation: This will be a 3 week sprint due to holiday schedules. 

## Objectives

### Engagement

- [x] Get social compass live
- [ ] Top feed toggle

### Growth

- [x] Twitter sync air drop (https://gitlab.com/minds/engine/-/issues/2163)
- [x] Update tweet text (https://gitlab.com/minds/front/-/issues/5178)
- [ ] Experiment: New users land on discovery/top (https://gitlab.com/minds/minds/-/issues/2869)
- [ ] Update widget text (https://gitlab.com/minds/front/-/issues/5170)

### Monetization

- [x] Gather list of all legacy token memberships
- [x] Issue Minds+ and Pro payouts

### Platform

- [ ] Fix up sandboxes and permissions (https://gitlab.com/minds/infrastructure/minds-terraform/-/issues/29)
- [x] Health check servers (https://gitlab.com/minds/infrastructure/minds-terraform/-/issues/30)
- [ ] Submit MR to Ceramic regarding mainnet (https://gitlab.com/minds/minds-ceramic-demo/-/issues/1)
- [ ] ~~Update Ceramic designs (https://gitlab.com/minds/front/-/issues/5166)~~
- [ ] ~~Ceramic improvements (https://gitlab.com/groups/minds/-/epics/174)~~
- [ ] ~~Point minds.org to ceramic demo (https://gitlab.com/minds/front/-/issues/4740)~~
- [ ] ~~Growthbook updates (https://gitlab.com/minds/minds/-/issues/2858)~~

## Absences

- @markeharding 20th Dec - 3rd Jan
- @manishoo 20th Dec - 3rd Jan
- @benhayward.ben 17th Dec - 3rd Jan
- @msantang78 27th-3rd
- @fausto.arci 23rd Dec - 3rd Jan (Last working day: 22nd Dec - Back to work: 4th Jan)
- @omadrid 16th Dec - 3rd Jan
- @michaelfbradley 27th Dec - 3rd Jan

## Planning Poker

https://scrumly.app/join_game.html?id=61b874948a14b

Story points: 0.0
Add metrics to GrowthBook

A collection of metrics to add to GrowthBook to enable new experiments.

## Growth metrics
- [x] 2-hour retention
- [x] 3-day retention
- [x] Followed channel

## Engagement metrics
- [x] Made a comment / reply
- [x] Pageviews
- [x] 7-day retention


----

## Dimensions
- [x] Device type (computer vs. mobile)
- [x] Platform (web vs. app)
- [x] Language

Story points: 8.0
Discovery: Add "Top" tab (mobile app)

In order to improve the quality of content on the Discovery page, and to drive engagement to our top content, we want to:

1. Add a new `Top` tab  to the Discovery page.
2. Use the feed powering the Guest Mode homepage to present posts in this `Top` feed.
3. Make `Top` the default tab when clicking the `Discovery` button in the Minds navigation.

Quick mock to illustrate:

![image](/uploads/118086a4a53f8f939e334351853c27a9/image.png)

- [ ] Follow experiment https://gitlab.com/minds/minds/-/issues/2869

Story points: 3.0
Discovery feed paginated loading issue

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

- Given a Minds user is viewing a Discovery search feed
- when the user scrolls to the bottom of the first page of posts
- then the Minds app attempts to load the next page of posts and appears to get stuck.

Expected result:

- then the Minds app quickly loads the next page of posts.

### Steps to reproduce

Go here on web: https://www.minds.com/discovery/search?f=top&t=all&q=%23thegreatmememigration

Scroll to the bottom of the first page.

Observe the loading behavior

### Platform information 

I'm testing on MacOS + Chrome.

### Relevant logs and/or screenshots

Video attached.

![smScreen_Recording_2021-12-03_at_10.26.54_AM](/uploads/21dfd6eb3732c822ef06a62b97bca74b/smScreen_Recording_2021-12-03_at_10.26.54_AM.mov)

Story points: 3.0
(bug) Posts showing up in wrong feeds, with out of place timestamps

Steps to replicate:
1. I went into boost console
2. I boosted 3 posts (0.5T, 2.5T, 2T)
3. Clicked minds logo to get back to the timeline
4. My pinned post was third post on the timeline:

> ![2021-12-03_19-05-49](/uploads/04c914b6d4303c3251a8d4fdfae12a04/2021-12-03_19-05-49.mp4)


5. Then i tried going back to boost console (using back arrow)
6. I went back to the feed, and I saw this:

> ![2021-12-03_19-06-39](/uploads/ce773eb43bff75822133d1c2470fa207/2021-12-03_19-06-39.mp4)

Story points: 2.0
No Reply button for 2nd-level comments in mobile app

2nd-level comments on posts don't display a "Reply" button in the mobile app.

![image](/uploads/d8da2568777ef4f6cd43ad096b0b71fb/image.png)

Post
- Has `Reply` button

1st-level comment
- Has `Reply` button

2nd-level comment
- Does not have `Reply` button

----

We should add a `Reply` button to 2nd-level comments to improve the mobile app commenting experience.

When clicking this `Reply` button, the comment UI should be displayed with the @username of the replied-to user pre-populated into the text field.

Story points: 2.0
Discovery: Add "Top" tab

In order to improve the quality of content on the Discovery page, and to drive engagement to our top content, we want to:

1. Add a new `Top` tab  to the Discovery page.
2. Use the feed powering the Guest Mode homepage to present posts in this `Top` feed.
3. Make `Top` the default tab when clicking the `Discovery` button in the Minds navigation.

Quick mock to illustrate:

![image](/uploads/118086a4a53f8f939e334351853c27a9/image.png)

Story points: 3.0
Remove 401s / 404s from sitemaps

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

Google Search Console is still reporting a high number of URLs that we submit in our sitemaps but report as 404 status codes when Google tries to crawl.

![image](/uploads/fc94d69a4ef76be3673a07fb172928cb/image.png)

Example URLs in sitemaps:

* https://www.minds.com/Briton
* https://www.minds.com/Matuko
* https://www.minds.com/M4gnum
* https://www.minds.com/Lj1119
* https://www.minds.com/vicked
* https://www.minds.com/Metall
* https://www.minds.com/JohnRR
* https://www.minds.com/3XN721
* https://www.minds.com/Sam316
* https://www.minds.com/Liamus

### Steps to reproduce

- Navigate to https://www.minds.com/sitemaps/sitemap3.xml
- Ctrl + F for `https://www.minds.com/Caswarfox`

### Platform information 

n/a / Search Console

### What is the current *bug* behavior?

- Pages that we return `401` codes for appear in the sitemap

### What is the expected *correct* behavior?

- Pages that return `401` or `404` codes should not appear in sitemaps.

### Relevant logs and/or screenshots

![image](/uploads/24c836613cd4252f9f0eb860a44829e1/image.png)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 2.0
Comments: Replies appear in reverse order

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

Given I'm viewing a post,
and the post has at least one comment (level 0),
when at least one comment has at least two replies (level 1),
then the level 1 replies appear in descending chronological order (newest to oldest).

![image](/uploads/d3c24bb6b9e61786c6547240f8b93d70/image.png)

### Steps to reproduce

[Here's a sample thread with level 1 replies.](https://www.minds.com/newsfeed/1307043536503312388?focusedCommentUrn=urn:comment:1307043536503312388:1307046543194329089:1307047897052745731:0:1307115456217223169)

### Platform information 

Reproduced in both web (desktop, mobile) as well as iOS app.

### What is the current *bug* behavior?

- level 1 replies appear in descending chronological order (newest to oldest).

### What is the expected *correct* behavior?

- level 1 replies appear in ascending chronological order (oldest to newest)

Story points: 3.0
Boost recommendation: Test #2

We previously executed [this A-B test](https://gitlab.com/minds/front/-/issues/3768) with a "Boost recommendation" visual cue aimed to increase the rate of new posts : boosts.

We want to try this test again, with a tweak on the execution aimed to improve the result.

![image](/uploads/18645951e4fc1dd66747487a78237c0f/image.png)

Previous test behavior was described as:

* given that I'm posting for the first time, I should see a tooltip that prompts me to boost a post.
  * the tooltip should be positioned above the boost button
  * it should be blue
  * it should stay for 6 seconds
  * it should not be dismissable
* given that I've already seen the tooltip once, I should see the boost button on the post shimmer after I submitted the post.
  * the shimmer should last for 12 seconds or 3 flashes

----

Let's test with this behavior instead:

* given that I'm **posting for the first time in 72 hours**, I should see a tooltip that prompts me to boost a post.
  * the tooltip should be positioned above the boost button
  * it should be blue
  * it should stay for 6 seconds
  * it should not be dismissable
* given that **I've already seen the tooltip once in the past 72 hours**, I should see the boost button on the post shimmer after I submitted the post.
  * the shimmer should last for 12 seconds or 3 flashes

Story points: 2.0
"Switch to app" overlay overlaps Guest Mode banner

Given the user is on a mobile device (here: emulating iOS),
and the user visits the new Guest Mode homepage,
when the page is loaded,
then a "Switch to the app" overlay appears at the bottom of the screen.

Desired outcome:

Remove the Guest Mode banner from mobile and display only the "Switch to app" overlay

![image](/uploads/67f6f0bbd5488ca4c611263699ebcd5f/image.png)

Story points: 1.0
Change copy on Twitter Sync settings page

In order to better set expectations for Minds users who enable Twitter Sync, we should change the copy on the [Twitter Sync settings page](https://www.minds.com/settings/other/twitter-sync) to communicate that (1) if a tweet is deleted on Twitter, it is not automatically deleted on Minds, and (2) users can edit and/or delete posts on Minds.

Old:

> Using our Twitter Sync tool, you can have your new tweets automatically copied over from Twitter to Minds. Retweets & Replies will not be copied over.

New:

> Using our Twitter Sync tool, Twitter users with over {{followerCountVar}} followers can have their new tweets automatically copied over from Twitter to Minds. Retweets, replies, and tweet deletions are not synced to Minds. You can edit and/or delete posts on Minds through the Minds app or website.

Story points: 1.0
Clicking to remove a tag from Popular Tags does nothing

## Issue

- As a logged-out user viewing the Guest Mode home page,
- when I click to remove an item from the Popular Tags module (aka "Tags for you"),
- then nothing happens.

![image](/uploads/3ae884bbdb274da5f63bff0110616987/image.png)

## Expected result

The user is prompted to register / log in.

Story points: 1.0
Login / Join Minds Now buttons visuals don't match designs

Login/Register buttons at the top-right should match the designs.

In staging:

![image](/uploads/da38130f16df514bd4ca67a801722ded/image.png)

Design mock:

![image](/uploads/b864fb6d6f3e7f39953c07e8ecce3565/image.png)

Story points: 1.0
Navigating to a tag page prompts me to log in

## Issue

- As a logged-out (anon) user,
- given I'm on the Minds guest mode home page,
- when I click on [a link in the "Tags for you" module](https://www.minds.com/discovery/search?q=%23memes&f=top),
- then I briefly see the tag page but quickly get redirected to the login page.

## Expected result:

I see the tag page I clicked on without being redirected to login so that I can explore the site and learn about Minds.

![image](/uploads/d158f65c7ba55679ddd5ae8947be2f4c/image.png)

Story points: 2.0
Fix guest-mode issues staging

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

* [x] SEO broken on discovery variant
* [x] Experiment forced to on
* [x] Channel recommendations broke (probably best we hide this, our current recommendations engine is not equipped to deal with logged out users)

Story points: 2.0
Engagement metric dashboard

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

(Summarize the bug encountered concisely)

### Steps to reproduce

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 13.0
Deploy Top/Latest feed options as A-B test

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

(Summarize the bug encountered concisely)

### Steps to reproduce

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 1.0
SSO / Keycloak rollout

- [x] Documentation about what keycloak is and how our team can use it
- [x] Bitwarden
- [x] Gitlab
- [x] Sentry
- [x] GSuite / Google Cloud
- [ ] Grafana
- [x] AWS (authentication)
- [ ] AWS (authorization)
- [ ] GCP
- [ ] Superset
- [ ] Stripe

Story points: 3.0