Plugins: install and update from a file or URL with a consent screen #47

Closed
opened 2026-10-08 21:19:46 +02:00 by SBDeveloper · 1 comment
Owner

Part of #13

What to build

The user can install a Plugin from inside the app. They pick a .zip or paste an http(s) URL, and the app shows what the package requests (network hosts, UI, playback events, storage, folders, audio processing). The Plugin installs only after the user consents to exactly that. The UI says the Plugin loads at the next start.

Installing a package whose id is already installed is an update. The user is asked again only if the new version requests more than they consented to before; requesting less needs no new consent. Errors (bad package, id clash, failed download, consent mismatch) are shown plainly.

The core already supports preview and install; this exposes it to the UI. Verifiable by installing the optional lyrics Plugin (#27) from its package.

Acceptance criteria

  • Install from a local file and from a URL, each through the preview and consent screen
  • Declining consent installs nothing
  • Installed Plugin shows a "restart to load" state
  • Updating asks for consent only for newly requested capabilities
  • Install errors are readable, not raw
  • Tested through the core install flow and the UI logic

Blocked by

None (can start immediately)

Part of #13 ## What to build The user can install a Plugin from inside the app. They pick a `.zip` or paste an http(s) URL, and the app shows what the package requests (network hosts, UI, playback events, storage, folders, audio processing). The Plugin installs only after the user consents to exactly that. The UI says the Plugin loads at the next start. Installing a package whose id is already installed is an update. The user is asked again only if the new version requests more than they consented to before; requesting less needs no new consent. Errors (bad package, id clash, failed download, consent mismatch) are shown plainly. The core already supports preview and install; this exposes it to the UI. Verifiable by installing the optional lyrics Plugin (#27) from its package. ## Acceptance criteria - [ ] Install from a local file and from a URL, each through the preview and consent screen - [ ] Declining consent installs nothing - [ ] Installed Plugin shows a "restart to load" state - [ ] Updating asks for consent only for newly requested capabilities - [ ] Install errors are readable, not raw - [ ] Tested through the core install flow and the UI logic ## Blocked by None (can start immediately)
Author
Owner

Implemented in e8dd967 and f8b2ca6: install and update from a .zip or URL through a preview and consent screen, 'Restart to load' state, plain errors, core update-consent tests and UI logic tests.

Implemented in e8dd967 and f8b2ca6: install and update from a .zip or URL through a preview and consent screen, 'Restart to load' state, plain errors, core update-consent tests and UI logic tests.
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
SBDeveloper/medley#47
No description provided.