Monorepo for Tangled tangled.org

proposal: appview/db: add timeline preferences model and storage #4578

Closed oyster.cafe
targeting master from jauntywunderkind.bsky.social/core:timeline-filters
Closed opened by and assigned to oyster.cafe
targeting master from jauntywunderkind.bsky.social/core:timeline-filters

What #

Add per-user controls for filtering activity from the homepage timeline. Maybe resolves #754 adequately?

Under Settings → Timeline, signed-in users can:

  • hide repository-creation activity;
  • set minimum and maximum follower counts for repository-star activity, based on the repository owner;
  • set minimum and maximum follower counts for follow activity, based on the followed user.

Leaving a bound blank disables it. A maximum of 0 hides all activity of that type.

Why #

High-volume follow and star activity involving popular accounts can overwhelm the timeline and obscure more relevant activity.

Implementation #

Preferences are stored per user. Missing preferences retain the existing unfiltered behavior.

Follower bounds are applied in the database queries before event limits, ensuring filtered events do not crowd eligible older activity out of the result page. Logged-out timelines remain unchanged.

The implementation includes persistence, validation, accessible settings controls, and coverage for bounds, reset behavior, filtering before limits, and the hide-all case.

Open questions #

  • Should maximum 0 continue to mean “hide all,” or should that use a separate control?
  • Is follower count the right signal for identifying noisy activity? Are there other #754 things we could/should do?
Commits 0