Commit Graph

20 Commits

Author SHA1 Message Date
Jason Zimdars 28a569c49b Tickets 2025-03-17 21:24:08 -05:00
Kevin McConnell 16a80ff3a6 More dynamic activity scores
This introduces a more dynamic system of activity scoring, to improve
the way bubbles "bubble up" due to their activity. There are a few
different parts we can tune here, and it's likely we'll need to make
adjustments once we get a feel for how this works in practice.

The basic idea here is:

- We assign points for certain types of event that happen on a bubble. A
  boost gets 1 point, a comment gets 10 points, and so on.
- These points decay over time, at a rate of 50% per day. So old
  activity is worth much less than new activity. Bubbles should rise up
  quickly when acted upon, bit will float back down if left idle.
- Some comments can score higher than others: the first comment from
  each person on a bubble is worth more (20) because it signals that
  more people are getting involved; and comments that follow a comment
  by a different author are also worth more (15) because that signals
  there's ongoing conversation between people, not just a series of
  notes being left by one individual.

In terms of implementation, we persist the score on the bubble
whenever it changes, but we handle the decay on the client side. That
allows us to cache the bubble representation without having to
continually change it while its activity decays.

We also keep a separate `activity_score_order` attribute on the model.
This can be used to sort the bubbles in order of "most active", without
having to think about the decay.
2025-03-05 17:16:31 +00:00
Kevin McConnell 81197bfb49 Don't set a default title 2025-02-11 14:34:39 +00:00
Jason Zimdars c052a796d8 Remove some of the more vertical ones 2024-11-22 16:25:40 -06:00
Jose Farias b4e8adca47 Pre-calculate comment counts and activity scores 2024-11-15 18:17:42 -06:00
Jose Farias 8b062b4432 Pull out Bubble#activity_count 2024-10-28 10:07:12 -06:00
Jose Farias 0727414017 Lean into delegated types APIs 2024-10-27 17:39:30 -06:00
Jose Farias f4b5210ca1 Spike persisted filters 2024-10-16 16:41:11 -06:00
Jose Farias 755cceb6bd Use size for counting bubble comments 2024-10-11 20:20:45 -05:00
Jose Farias ec7fc75054 Spike events system 2024-10-11 20:14:09 -05:00
Jeffrey Hardy d0e3ce5186 Memoize filter params to quiet noisy permitted parameter logging 2024-10-05 18:31:24 -04:00
Jeffrey Hardy 86e30fffcc Stub filtering for popped bubbles 2024-10-04 16:11:09 -04:00
Jeffrey Hardy cbb20ecc64 Rename the search param for clarity 2024-10-04 15:55:55 -04:00
Jason Zimdars db0fcdb8f2 Style 2024-09-23 10:00:11 -05:00
Jason Zimdars 25e12e2b12 Refactor so we can set the values in CSS depending on the context 2024-09-20 16:05:28 -05:00
Jason Zimdars 6c77f2ea1c This belongs in the comments helper 2024-09-18 10:12:15 -05:00
Jason Zimdars 352fd609e3 Include Added by... event in comments thread, move to helper 2024-09-13 08:59:07 -05:00
Jeffrey Hardy 77c4922fd5 Avoid unnecessary queries when sizing bubbles 2024-09-06 15:54:43 -04:00
Jason Zimdars 0c46df4890 Fix image bubbles display in Safari and Firefox 2024-09-06 11:10:45 -05:00
Jeffrey Hardy 5aae70298b Rename Splat to Bubble 2024-09-04 14:54:11 -04:00