Plugin relevance: cap how often a given plugin can be suggested (overlapping plugins create persistent noise)

Status Open
Reported on v2.1.228
Maintainer reply None cached
Activity 1 comment · opened Aug 12, 2026

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 tip
  • spinnerTipsOverride with excludeDefault: true — replaces the whole tip pool

There is no per-plugin suppression, and relevance exposes only topic and signals.

Requested

Either would work:

  1. 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.
  2. Operator-side cap — a field on relevance bounding 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

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗