true for update and fix, where the existing root is removed first. The plugin's data directory is preserved either way, as the specification requires.
Adopts an existing directory by writing the provenance marker, leaving its content untouched.
Only removes roots carrying our provenance marker.
Performs all Agent Plugin filesystem and network work: the plugins root lives outside the browser FileService sandbox.
Installing is two-phase so that a content-hash mismatch is an explicit user decision rather than something discovered after the plugin is already in place: stage downloads and verifies without touching the final location, and the frontend then commits or discards. Registering the resolved components is the frontend's job, after commit returns.