Plugin relevance: cap how often a given plugin can be suggested (overlapping plugins create persistent noise)
Problem
When two marketplace plugins solve overlapping problems, a user who has deliberately installed one keeps being suggested the other — indefinitely.
The suppression rules are per-plugin: a suggestion stops once that plugin is installed. Installing plugin A does nothing to suppress plugin B, even when the user chose A instead of B. From the docs:
A given plugin's suggestion appears at most once every three sessions across the spinner tip and the session-start notification combined, and neither repeats once the plugin is installed. The session-start notification additionally stops appearing after the suggestion has been shown twice.
So the session-start line caps at 2 showings and the Discover pin at 1, but the spinner tip has only a rate limit and no total cap. For a user who will never install the alternative, it recurs every ~3 sessions forever.
Concrete case
We run an internal marketplace and vendor two third-party plugins in the same domain that genuinely overlap in purpose. Their signals legitimately match the same work. A user who installs one gets pitched the other on repeat, with no way to say "no, I've made my choice."
Why existing controls don't solve it
Both are all-or-nothing and kill suggestions the user wants:
spinnerTipsEnabled: false— disables every tipspinnerTipsOverridewithexcludeDefault: true— replaces the whole tip pool
There is no per-plugin suppression, and relevance exposes only topic and signals.
Requested
Either would work:
- User-side dismissal — "don't suggest this plugin again", persisted per plugin. Most valuable, since only the user knows they've settled on an alternative.
- Operator-side cap — a field on
relevancebounding total suggestions, e.g.maxShows: 3, or a time-based limit (once per N days) rather than per N sessions. Sessions are a poor unit: a heavy user burns three in an hour.
Option 1 is the better fix; option 2 is the cheaper one and matches the caps the other two surfaces already have.
Why it matters for adoption
The suggestion surface is shared across every plugin in a marketplace, so one plugin that keeps suggesting itself to someone who will never install it degrades trust in all suggestions. We are declaring relevance on 6 of 34 candidate plugins, and the inability to bound a suggestion is a direct reason for that conservatism — we are leaving useful suggestions undeclared because we cannot bound the unwanted ones.
Client version: 2.1.228
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗