Assigning globalThis.window = undefined creates an own property. On Ubuntu
that shadows the host window, so later editor tests throw when ProseMirror
reads window.MutationObserver.
Saving a digest switch and its time both register the same desktop schedule. Overlapping requests were dropped, so the task stayed off and the plugin showed a restart notice.
Keep plugin and theme membership on the workspace so browsers and desktop apps can re-download verified packages. Settings, secrets, and native mobile runtimes stay out of this catalog.
Related Issue: #396
Marketplace updates look up the semver tag first, so official plugins
published as vX.Y.Z failed with "GitHub release was not found." Retry
the v-prefixed tag in the instance proxy and the desktop installer.
Marketplace cards keep launcher commands only. The toolbar menu keeps
editor commands and dashboard panels, and drops workflow dialogs plus
commands that only open a dashboard already in the menu.
Read the latest Release through the instance (cached 5 minutes),
then the public latest/download URL and raw.githubusercontent.com.
Do not treat one plugin's 403 as a total update-check failure.
Prefer the GitHub API asset-id route after the public release URL fails, and skip re-downloading official plugin packages when the live version already matches.
Official plugins already update silently in the background. Drop the blocking "got it" notice so a successful auto-update does not steal focus from the workspace.
Official marketplace plugins already show the official auto-update badge, but the first-enable confirmation still used community-plugin copy. Skip that confirmation for publisher EdgeEver plugins; community plugins still get the one-time warning.
Desktop install was failing with Failed to fetch because the renderer
fetched GitHub metadata directly. Resolve live official releases and
download Release assets via the current EdgeEver instance, so daily
plugin updates still work without a client-side GitHub API round trip.