Plugin API: capability enforcement and secret isolation #19

Closed
opened 2026-10-06 21:16:47 +02:00 by SBDeveloper · 1 comment
Owner

Part of #13

What to build

The host denies any capability a Plugin did not declare or the user did not consent to. Secrets like the ARL never leave the owning Plugin. A misbehaving Plugin is isolated from the player. Consent is re-asked if an update requests more capabilities.

Acceptance criteria

  • Undeclared or unconsented capability calls are denied
  • One Plugin cannot read another's secrets
  • A trapping or runaway Plugin does not crash the player
  • Re-consent on capability growth
  • Core integration tests

Blocked by

Part of #13 ## What to build The host denies any capability a Plugin did not declare or the user did not consent to. Secrets like the ARL never leave the owning Plugin. A misbehaving Plugin is isolated from the player. Consent is re-asked if an update requests more capabilities. ## Acceptance criteria - [ ] Undeclared or unconsented capability calls are denied - [ ] One Plugin cannot read another's secrets - [ ] A trapping or runaway Plugin does not crash the player - [ ] Re-consent on capability growth - [ ] Core integration tests ## Blocked by - #18
Author
Owner

Implemented in 2146d5f: consent enforced at load, data dir protected from plugin mounts, call timeout + memory cap + trap recovery, update flow with re-consent on capability growth. Core integration tests in crates/core/tests/plugin_isolation.rs.

Implemented in 2146d5f: consent enforced at load, data dir protected from plugin mounts, call timeout + memory cap + trap recovery, update flow with re-consent on capability growth. Core integration tests in crates/core/tests/plugin_isolation.rs.
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#19
No description provided.