dsh-market Browse plugins Guides Ecosystem report GitHub 中文

Why an update says "waiting": the release-age wait

You see a new version, press Update, and the market tells you to wait or offers an older version instead. Nothing is broken. This is a deliberate delay, and it is the profile's own setting.

What the wait is

DSH installs plugins with pnpm, and pnpm can refuse any version that was published less than a set time ago. The setting is minimumReleaseAge, counted in minutes. Recent pnpm versions default to 1440 minutes, one day.

The reason is supply-chain safety. A malicious or broken release is usually noticed and pulled within hours. A plugin runs with your permissions, so letting a one-hour-old release in is a risk that waiting a day mostly removes.

What you will see in the market

dsh web and the desktop app behave differently

On dsh web, when pnpm refuses a too-young release during an update, the market retries once with the wait switched off for that single command, so the update goes through. On the desktop app, the plugin manager is the app's own and takes no such override, so the market holds the update until the release is old enough and tells you how long is left.

Changing it

The setting lives in the profile directory, in pnpm-workspace.yaml:

minimumReleaseAge: 1440
minimumReleaseAgeExclude:
  - some-plugin@2.0.0

Raise the number to be stricter. To let one specific version through, list it under minimumReleaseAgeExclude; installing an exact version (name@2.0.0) on a profile that still uses the default adds that line for you. Setting the number to 0 for everything removes the protection for every plugin, so do it only for a one-off command you trust.

"No matching version" is not always this

Mirrors sync later than the official npm registry. A release that exists upstream can be missing from your mirror for a while, and pnpm reports that as "no matching version". If the wait is not the cause, trying the official registry, or trying again later, is the fix.