| @@ -30,8 +30,9 @@ | ||
| 30 | 30 | ], |
| 31 | 31 | 'execute_callback' => 'wdesignkit_mcp_list_rollback_versions', |
| 32 | 32 | 'permission_callback' => 'wdesignkit_mcp_permission_callback', |
| 33 | 33 | 'meta' => [ |
| 34 | + 'public' => true, | |
| 34 | 35 | 'show_in_rest' => true, |
| 35 | 36 | 'mcp' => ['public' => true], |
| 36 | 37 | 'annotations' => [ |
| 37 | 38 | 'instructions' => implode("\n", [ |
| @@ -80,10 +81,15 @@ | ||
| 80 | 81 | ], |
| 81 | 82 | 'execute_callback' => 'wdesignkit_mcp_rollback', |
| 82 | 83 | 'permission_callback' => 'wdesignkit_mcp_permission_callback', |
| 83 | 84 | 'meta' => [ |
| 85 | + // Replaces the plugin's files on disk — the same operation as a plugin update, so it | |
| 86 | + // requires update_plugins on top of the shared manage_options gate. Enforced via | |
| 87 | + // wp_ability_permission_result (WP 7.1+); see class-wdk-ability-lifecycle.php. | |
| 88 | + 'required_capability' => 'update_plugins', | |
| 89 | + 'public' => false, | |
| 84 | 90 | 'show_in_rest' => true, |
| 85 | - 'mcp' => ['public' => true], | |
| 91 | + 'mcp' => ['public' => false], | |
| 86 | 92 | 'annotations' => [ |
| 87 | 93 | 'instructions' => implode("\n", [ |
| 88 | 94 | 'Rolls back WDesignKit to a previous version. Destructive — replaces plugin files.', |
| 89 | 95 | 'Always call wdesignkit/list-rollback-versions first to validate the version string.', |