{"id":311005,"date":"2026-06-26T06:49:51","date_gmt":"2026-06-26T06:49:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/acrossai-abilities-manager\/"},"modified":"2026-07-02T12:30:19","modified_gmt":"2026-07-02T12:30:19","slug":"acrossai-abilities-manager","status":"publish","type":"plugin","link":"https:\/\/cn.wordpress.org\/plugins\/acrossai-abilities-manager\/","author":15295430,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.0.3","stable_tag":"0.0.3","tested":"7.0","requires":"6.9","requires_php":"8.1","requires_plugins":null,"header_name":"AcrossAI Abilities Manager","header_author":"raftaar1191","header_description":"Manage and customize the abilities of AcrossAI on your WordPress site. Tailor the AI's capabilities to suit your needs, enhancing user experience and engagement.","assets_banners_color":"000000","last_updated":"2026-07-02 12:30:19","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/github.com\/acrosswp\/acrossai-abilities-manager","header_plugin_uri":"https:\/\/acrossai.co\/","header_author_uri":"https:\/\/profiles.wordpress.org\/raftaar1191\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":106,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.0.1":{"tag":"0.0.1","author":"raftaar1191","date":"2026-06-26 06:49:29"},"0.0.2":{"tag":"0.0.2","author":"raftaar1191","date":"2026-07-02 12:04:52"},"0.0.3":{"tag":"0.0.3","author":"raftaar1191","date":"2026-07-02 12:30:19"}},"upgrade_notice":{"0.0.3":"<p>Fixes the 0.0.2 activation error on WordPress.org installs \u2014 the release ZIP now includes the Composer autoloader. No functional or user-facing changes vs 0.0.2. If you hit the &quot;Composer autoloader is missing&quot; error on 0.0.2, delete the plugin folder and reinstall 0.0.3.<\/p>","0.0.2":"<p>IMPORTANT: (1) This release does NOT migrate Access Control rules from previous versions. If you had configured any Access Control rules on abilities, audit and reconfigure them after upgrading. Pre-existing rules remain in the database (in the orphaned <code>{prefix}wpb_access_control<\/code> table) but are no longer applied. (2) Ability execution logging has been removed \u2014 the Logs admin page is gone; ability-execution denials are no longer recorded by this plugin. Install a compatible logging plugin if you need this signal.<\/p>","0.0.1":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3586852,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3586852,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3586852,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3586852,"resolution":"772x250","location":"assets","locale":"","width":772,"height":259}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.0.1","0.0.2","0.0.3"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The Abilities Manager admin page \u2014 searchable, sortable ability table.","2":"The edit drawer \u2014 tri-state override controls for each ability field.","3":"Bulk actions toolbar for allow\/disallow\/reset across multiple abilities.","4":"The Ability Library page \u2014 enable\/disable add-on ability groups.","5":"The Add-ons page \u2014 browse free and premium add-ons."}},"plugin_section":[],"plugin_tags":[251511,268952,1912,2353,174442],"plugin_category":[],"plugin_contributors":[140910],"plugin_business_model":[],"class_list":["post-311005","plugin","type-plugin","status-publish","hentry","plugin_tags-abilities","plugin_tags-ability-management","plugin_tags-access-control","plugin_tags-ai","plugin_tags-site-management","plugin_contributors-raftaar1191","plugin_committers-raftaar1191"],"banners":{"banner":"https:\/\/ps.w.org\/acrossai-abilities-manager\/assets\/banner-772x250.jpg?rev=3586852","banner_2x":"https:\/\/ps.w.org\/acrossai-abilities-manager\/assets\/banner-1544x500.jpg?rev=3586852","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/acrossai-abilities-manager\/assets\/icon-128x128.jpg?rev=3586852","icon_2x":"https:\/\/ps.w.org\/acrossai-abilities-manager\/assets\/icon-256x256.jpg?rev=3586852","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>AcrossAI Abilities Manager gives site administrators full visibility and control over every ability registered via the WordPress Abilities API (<code>wp_get_ability()<\/code>).<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li><strong>Browse all abilities<\/strong> \u2014 a searchable, sortable, paginated table listing every registered ability with slug, provider, source, and current status.<\/li>\n<li><strong>Toggle allow\/disallow<\/strong> \u2014 enable or disable any ability site-wide with a single click. Changes are saved instantly without a page reload.<\/li>\n<li><strong>Edit ability metadata<\/strong> \u2014 override <code>readonly<\/code>, <code>destructive<\/code>, <code>idempotent<\/code>, <code>show_in_rest<\/code>, <code>show_in_mcp<\/code>, <code>mcp_type<\/code>, and <code>mcp_servers<\/code> fields per ability using a tri-state system (Yes \/ No \/ Inherit from registry).<\/li>\n<li><strong>Reset overrides<\/strong> \u2014 restore any ability back to its registry defaults with one click.<\/li>\n<li><strong>Bulk actions<\/strong> \u2014 allow, disallow, or reset up to 50 abilities at once.<\/li>\n<li><strong>Ability Library<\/strong> \u2014 enable or disable add-on ability groups from a dedicated Library page, with All\/Specific mode controls per group.<\/li>\n<li><strong>Add-ons page<\/strong> \u2014 browse, install, and manage free and premium add-ons directly from the WordPress admin. Powered by <a href=\"https:\/\/github.com\/WPBoilerplate\/wpb-addons-page\">wpb-addons-page<\/a>.<\/li>\n<li><strong>MCP server list<\/strong> \u2014 view all registered MCP servers when the MCP Adapter plugin is active.<\/li>\n<\/ul>\n\n<p>All overrides are stored in a dedicated database table. The WordPress ability registry is never modified \u2014 only the fields that differ from registry defaults are persisted.<\/p>\n\n<p><strong>Security:<\/strong><\/p>\n\n<ul>\n<li>All endpoints require <code>manage_options<\/code> capability.<\/li>\n<li>All state-changing requests are protected by WordPress nonce verification.<\/li>\n<li>All input is sanitized; all output is escaped.<\/li>\n<\/ul>\n\n<p><strong>Third-party integrations (optional):<\/strong><\/p>\n\n<ul>\n<li><strong>MCP Adapter plugin<\/strong> \u2014 if active, the plugin displays a list of registered MCP servers inside the ability edit panel. No data is sent to any external service. The MCP Adapter plugin communicates only with your own WordPress installation.<\/li>\n<li><strong>Freemius<\/strong> \u2014 the Add-ons page uses Freemius to handle paid add-on purchases, license management, and automatic updates. Data is only sent after explicit user action (see \"External Services\" below).<\/li>\n<\/ul>\n\n<p>No data is sent to any external server automatically by this plugin.<\/p>\n\n<h3>External Services<\/h3>\n\n<p><strong>Freemius<\/strong> (https:\/\/freemius.com)<\/p>\n\n<p>The Add-ons page is powered by <a href=\"https:\/\/github.com\/WPBoilerplate\/wpb-addons-page\">wpb-addons-page<\/a>, which integrates with Freemius to handle paid add-on purchases, license management, and automatic updates for premium add-ons.<\/p>\n\n<p>When a user chooses to connect their account or purchase a paid add-on, the following data is sent to Freemius servers:<\/p>\n\n<ul>\n<li>WordPress admin email address<\/li>\n<li>Site URL<\/li>\n<li>WordPress and PHP version<\/li>\n<\/ul>\n\n<p>This only happens after explicit user action (clicking <strong>Login \/ Connect<\/strong> or <strong>Buy<\/strong> on the Add-ons page). No data is sent automatically on plugin activation or on any other page.<\/p>\n\n<p>Freemius Terms of Service: https:\/\/freemius.com\/terms\/\nFreemius Privacy Policy:   https:\/\/freemius.com\/privacy\/<\/p>\n\n<p>Free add-ons listed on the Add-ons page are hosted on WordPress.org and installed via the standard WordPress plugin installer. No external service is involved for free add-ons.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>This plugin does not collect or store any user data by itself.<\/p>\n\n<p>If a user chooses to connect their account via the Add-ons page, data is handled by Freemius in accordance with their privacy policy:\nhttps:\/\/freemius.com\/privacy\/<\/p>\n\n<p>No data is sent to any external server without explicit user action.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>acrossai-abilities-manager<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Navigate to <strong>AcrossAI Abilities Manager<\/strong> in the WordPress admin menu.<\/li>\n<\/ol>\n\n<p><strong>Add-ons:<\/strong><\/p>\n\n<ol>\n<li>Go to <strong>AcrossAI Abilities Manager \u2192 Add-ons<\/strong> to browse available add-ons.<\/li>\n<li>Free add-ons can be installed with one click via the standard WordPress plugin installer.<\/li>\n<li>Paid add-ons require connecting your account \u2014 click <strong>Buy<\/strong> on any paid add-on to begin.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20support%20multisite%3F\"><h3>Does this plugin support Multisite?<\/h3><\/dt>\n<dd><p>No. This plugin has not been tested on WordPress Multisite installations.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20modify%20the%20wordpress%20ability%20registry%3F\"><h3>Does this plugin modify the WordPress ability registry?<\/h3><\/dt>\n<dd><p>No. The plugin stores only overrides \u2014 fields that differ from the registry defaults. The ability registry itself (<code>wp_get_ability()<\/code>) is never modified.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20reset%20an%20override%3F\"><h3>What happens when I reset an override?<\/h3><\/dt>\n<dd><p>The override row is deleted from the database. The ability will inherit its values from the registry again.<\/p><\/dd>\n<dt id=\"what%20is%20the%20ability%20library%3F\"><h3>What is the Ability Library?<\/h3><\/dt>\n<dd><p>The Library page lets you enable or disable ability groups registered by add-on plugins. Each group shows an ON\/OFF master toggle and an All\/Specific mode selector. In Specific mode, individual ability slots can be toggled independently.<\/p><\/dd>\n<dt id=\"what%20is%20the%20mcp%20adapter%20integration%3F\"><h3>What is the MCP Adapter integration?<\/h3><\/dt>\n<dd><p>If the MCP Adapter plugin is active on your site, AcrossAI Abilities Manager will display the list of registered MCP servers in the ability edit panel. This is entirely optional \u2014 the plugin works without the MCP Adapter.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20make%20external%20http%20requests%3F\"><h3>Does this plugin make external HTTP requests?<\/h3><\/dt>\n<dd><p>Only when you explicitly interact with the Add-ons page to connect your account or purchase a paid add-on. In that case, data is sent to Freemius (see \"External Services\"). No external requests are made otherwise.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.0.3<\/h4>\n\n<ul>\n<li><strong>Fix: plugin now activates on installs from WordPress.org.<\/strong> The 0.0.2 release ZIP shipped without the Composer autoloader (<code>vendor\/autoload_packages.php<\/code>) because the WordPress.org deploy workflow did not run <code>composer install<\/code> before uploading. Users installing 0.0.2 from the WordPress.org plugin directory saw the plugin activation guard trigger: <em>\"AcrossAI Abilities Manager cannot activate: the Composer autoloader is missing\u2026\"<\/em>. The 0.0.3 release ZIP includes the full production autoloader; no other code changes. If you already installed 0.0.2 and hit the activation error, delete the plugin folder and reinstall 0.0.3.<\/li>\n<\/ul>\n\n<h4>0.0.2<\/h4>\n\n<ul>\n<li><strong>Composer dependency refresh<\/strong> \u2014 <code>wpb-access-control<\/code> bumped to v2.0.0 (per-consumer database tables); <code>acrossai-co\/main-menu<\/code> bumped to v0.0.10 (now bundles the Add-ons page and includes the JS-side rebrand-sync fix that restores Install \/ Activate \/ Deactivate button behavior). The standalone <code>acrossai-co\/addons-page<\/code> package has been removed from direct dependencies; the same <code>AcrossAI_Addon\\AddonsPage<\/code> class now ships from the <code>main-menu<\/code> package.<\/li>\n<li><strong>Per-consumer access-control storage<\/strong> \u2014 this plugin now owns its own <code>{prefix}abilities_access_control<\/code> database table, keeping its rules fully isolated from any other plugin embedding the same access-control library. The dedicated table is created automatically on plugin activation.<\/li>\n<li><strong>Add-ons submenu URL changed<\/strong> \u2014 the Add-ons page slug is now <code>acrossai-addons<\/code> (was <code>wpb-addons<\/code>). Any bookmarks or external links pointing at <code>wp-admin\/admin.php?page=wpb-addons<\/code> should be updated to <code>wp-admin\/admin.php?page=acrossai-addons<\/code>. The submenu location and behavior are otherwise unchanged.<\/li>\n<li><strong>BREAKING \u2014 Access Control rules from earlier releases are NOT migrated.<\/strong> If you previously configured Access Control rules on any ability, those rules were stored in the shared <code>{prefix}wpb_access_control<\/code> table and are <strong>no longer read<\/strong> by this release. After upgrading, please audit every ability's Access Control panel and reconfigure any rules that were previously in place. The legacy table is left on disk (in case you need to reference the prior configuration) and can be dropped manually by a database administrator if desired: <code>DROP TABLE {prefix}wpb_access_control;<\/code> and <code>DELETE FROM {prefix}options WHERE option_name = 'wpb_access_control_db_version';<\/code>.<\/li>\n<li><strong>BREAKING \u2014 Ability execution logging removed.<\/strong> The dedicated Logs admin page, the log-retention Settings field, the <code>{prefix}acrossai_ability_logs<\/code> database table, and the <code>\/wp-json\/acrossai-abilities-log\/v1\/logger\/logs<\/code> REST endpoint are all removed. If you rely on ability-execution logging for security monitoring or auditing, install a compatible logging plugin or hook <code>wp_after_execute_ability<\/code> directly in your own consumer code \u2014 the upstream ability-execution events remain available. Bookmarks to <code>wp-admin\/admin.php?page=acrossai-abilities-logs<\/code> receive the standard \"page does not exist\" response. External integrations polling the removed REST endpoint receive 404. On existing installs, the legacy logs table and its schema-version option are orphaned; opt into the \"delete all data on uninstall\" setting to drop them cleanly, or run manually: <code>DROP TABLE {prefix}acrossai_ability_logs;<\/code> and <code>DELETE FROM {prefix}options WHERE option_name IN ('acrossai_abilities_log_retention_days', 'acrossai_ability_logs_db_version');<\/code>.<\/li>\n<\/ul>\n\n<h4>0.0.1<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Sitewide Ability Management: browse, toggle, edit, reset, bulk-action.<\/li>\n<li>Ability Library: enable\/disable add-on ability groups with All\/Specific mode controls.<\/li>\n<li>Add-ons page powered by wpb-addons-page with Freemius integration.<\/li>\n<li>MCP server listing via MCP Adapter integration.<\/li>\n<\/ul>","raw_excerpt":"Manage every WordPress ability registered on your site \u2014 view, search, override, and bulk-control ability metadata from a single admin page.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/311005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=311005"}],"author":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/raftaar1191"}],"wp:attachment":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=311005"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=311005"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=311005"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=311005"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=311005"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=311005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}