b7d83ed931
The earlier dry-run change moved scope into an options object, silently ignoring the legacy uninstallPlugin(id, "user") runtime shape still reachable from compiled or plain-JS callers. Restore scope as the positional second argument and carry dryRun in a trailing options bag, preserving the existing call shape while keeping the non-mutating dry-run path. Fixes #8178