You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Registry plugins today only have an install path. PR #1011 added a
"Uninstall is not yet available" note in PluginManager.tsx as a
band-aid. Close the gap.
POST /_emdash/api/admin/plugins/registry/:pluginId/update
→ re-runs the install pipeline at a new version. Requires the
same consent flow as install (re-confirm capabilities). Uses the
same idempotency / race protections.
GET /_emdash/api/admin/plugins/registry/updates → returns the
list of installed registry plugins whose latest release on the
aggregator is newer than the installed version. Mirrors the
marketplace endpoint.
Admin
PluginManager.tsx:
Remove the temporary "uninstall not yet available" note.
Enable the uninstall button for source === "registry".
Add update flow (capability re-consent if capabilities changed
between versions).
Bundle registry update results into the existing updates query.
Registry plugins today only have an install path. PR #1011 added a
"Uninstall is not yet available" note in
PluginManager.tsxas aband-aid. Close the gap.
Parent: #1026
Server
POST /_emdash/api/admin/plugins/registry/:pluginId/uninstall→ delete R2 bundle prefix + delete
_plugin_staterow +emdash.syncRegistryPlugins(). Mirrors marketplace shape.POST /_emdash/api/admin/plugins/registry/:pluginId/update→ re-runs the install pipeline at a new version. Requires the
same consent flow as install (re-confirm capabilities). Uses the
same idempotency / race protections.
GET /_emdash/api/admin/plugins/registry/updates→ returns thelist of installed registry plugins whose latest release on the
aggregator is newer than the installed version. Mirrors the
marketplace endpoint.
Admin
PluginManager.tsx:source === "registry".between versions).
Tests
assertSafeArtifactUrlSSRF coverage.verifyChecksummultibase encoding + size cases.delete it).
makeRegistryPluginIdcollision resistance.handle.invalid sentinel, network failure).
Acceptance
from the runtime within one sync cycle.
if changed.
breadth and depth.