This repository was archived by the owner on Feb 5, 2026. It is now read-only.

dev: add register_ability_args filter [Proposal] - #74

Merged
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter
Sep 29, 2025
Merged

dev: add register_ability_args filter [Proposal]#74
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter

Conversation

@justlevine

@justlevinejustlevine commented Sep 13, 2025

Copy link
Copy Markdown
Contributor

What

This PR exposes the register_ability_args filter as a way to centrally extend and change the behavior of registered abilities.

Why

How

  • wp_ability_args is used before the merge to core, but it should be changed to abilities_api as part of 6.9 IMO. changed to register_ability_args

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces the wp_ability_args filter to the Abilities API, allowing developers to modify ability arguments before validation and instantiation. This provides a centralized mechanism for extending and customizing ability behavior.

  • Adds a filter hook in the registry's register method to modify ability arguments
  • Includes comprehensive documentation with usage examples
  • Uses wp_ prefix to avoid naming collisions before core integration

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

FileDescription
includes/abilities-api/class-wp-abilities-registry.phpAdds the wp_ability_args filter in the register method before validation
docs/5.hooks.mdDocuments the new filter with detailed usage examples and parameters

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@codecov

codecovBot commented Sep 13, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.64%. Comparing base (4beab25) to head (36c0e99).
⚠️ Report is 1 commits behind head on trunk.

Additional details and impacted files
@@ Coverage Diff @@## trunk #74 +/- ##
============================================
+ Coverage 84.84% 85.64% +0.79% 
Complexity 102 102 ============================================
Files 16 16 Lines 772 773 +1 Branches 86 86 ============================================
+ Hits 655 662 +7 + Misses 117 111 -6 
FlagCoverage Δ
javascript92.66% <ø> (ø)
unit82.88% <100.00%> (+1.11%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

justlevineand others added 2 commits September 13, 2025 20:10
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@justlevine
justlevine marked this pull request as ready for review September 13, 2025 17:17
@github-actions

github-actionsBot commented Sep 13, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: justlevine <justlevine@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left some minor feedback. Overall, I'm very much in favor of the proposed extensibility option.

Comment threadincludes/abilities-api/class-wp-abilities-registry.php Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@gziologziolo added the [Type] Enhancement New feature or request label Sep 15, 2025
@gziolo

gziolo commented Sep 17, 2025

Copy link
Copy Markdown
Member

We will also need some basic unit test coverage to illustrate the expected behavior better and prevent future regressions.

I plan to add some tests today to:

We can coordinate how to ensure we avoid more complex merge conflicts.

@gziolo

Copy link
Copy Markdown
Member

I plan to add some tests today to:

#56

For your information. Tests for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/tests/unit/abilities-api/wpAbility.php. Docs for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/docs/6.hooks.md.

@gziologziolo changed the title dev: add wp_ability_args filter [Proposal]dev: add register_ability_args filter [Proposal]Sep 23, 2025
@gziolo

Copy link
Copy Markdown
Member

@galatanovidiu, this proposed filter register_ability_args that allows changing $args during registration should be essential for extenders that want to annotate existing abilities for usage with the MCP adapter when such information is missing.

@justlevine

Copy link
Copy Markdown
ContributorAuthor

@gziolo feedback addressed, tests added, and merged the action/filter docs (structure too, not just pasting the two together). PTAL and let me know what you think 🙏

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition to the documentation and test coverage. Thank you for addressing my feedback.

I left some small notes to address before merging changes 🚀

Comment threaddocs/6.hooks.md Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Co-authored-by: Greg Ziółkowski <grzegorz@gziolo.pl>
@gziolo
gziolo merged commit 309f5a0 into WordPress:trunkSep 29, 2025
22 checks passed
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] EnhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@justlevine@gziolo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

dev: add register_ability_args filter [Proposal] - #74

Merged
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter
Sep 29, 2025
Merged

dev: add register_ability_args filter [Proposal]#74
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter

Conversation

@justlevine

@justlevinejustlevine commented Sep 13, 2025

Copy link
Copy Markdown
Contributor

What

This PR exposes the register_ability_args filter as a way to centrally extend and change the behavior of registered abilities.

Why

How

  • wp_ability_args is used before the merge to core, but it should be changed to abilities_api as part of 6.9 IMO. changed to register_ability_args

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces the wp_ability_args filter to the Abilities API, allowing developers to modify ability arguments before validation and instantiation. This provides a centralized mechanism for extending and customizing ability behavior.

  • Adds a filter hook in the registry's register method to modify ability arguments
  • Includes comprehensive documentation with usage examples
  • Uses wp_ prefix to avoid naming collisions before core integration

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

FileDescription
includes/abilities-api/class-wp-abilities-registry.phpAdds the wp_ability_args filter in the register method before validation
docs/5.hooks.mdDocuments the new filter with detailed usage examples and parameters

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@codecov

codecovBot commented Sep 13, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.64%. Comparing base (4beab25) to head (36c0e99).
⚠️ Report is 1 commits behind head on trunk.

Additional details and impacted files
@@ Coverage Diff @@## trunk #74 +/- ##
============================================
+ Coverage 84.84% 85.64% +0.79% 
Complexity 102 102 ============================================
Files 16 16 Lines 772 773 +1 Branches 86 86 ============================================
+ Hits 655 662 +7 + Misses 117 111 -6 
FlagCoverage Δ
javascript92.66% <ø> (ø)
unit82.88% <100.00%> (+1.11%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

justlevineand others added 2 commits September 13, 2025 20:10
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@justlevine
justlevine marked this pull request as ready for review September 13, 2025 17:17
@github-actions

github-actionsBot commented Sep 13, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: justlevine <justlevine@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left some minor feedback. Overall, I'm very much in favor of the proposed extensibility option.

Comment threadincludes/abilities-api/class-wp-abilities-registry.php Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@gziologziolo added the [Type] Enhancement New feature or request label Sep 15, 2025
@gziolo

gziolo commented Sep 17, 2025

Copy link
Copy Markdown
Member

We will also need some basic unit test coverage to illustrate the expected behavior better and prevent future regressions.

I plan to add some tests today to:

We can coordinate how to ensure we avoid more complex merge conflicts.

@gziolo

Copy link
Copy Markdown
Member

I plan to add some tests today to:

#56

For your information. Tests for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/tests/unit/abilities-api/wpAbility.php. Docs for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/docs/6.hooks.md.

@gziologziolo changed the title dev: add wp_ability_args filter [Proposal]dev: add register_ability_args filter [Proposal]Sep 23, 2025
@gziolo

Copy link
Copy Markdown
Member

@galatanovidiu, this proposed filter register_ability_args that allows changing $args during registration should be essential for extenders that want to annotate existing abilities for usage with the MCP adapter when such information is missing.

@justlevine

Copy link
Copy Markdown
ContributorAuthor

@gziolo feedback addressed, tests added, and merged the action/filter docs (structure too, not just pasting the two together). PTAL and let me know what you think 🙏

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition to the documentation and test coverage. Thank you for addressing my feedback.

I left some small notes to address before merging changes 🚀

Comment threaddocs/6.hooks.md Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Co-authored-by: Greg Ziółkowski <grzegorz@gziolo.pl>
@gziolo
gziolo merged commit 309f5a0 into WordPress:trunkSep 29, 2025
22 checks passed
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] EnhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@justlevine@gziolo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

dev: add register_ability_args filter [Proposal] - #74

Merged
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter
Sep 29, 2025
Merged

dev: add register_ability_args filter [Proposal]#74
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter

Conversation

@justlevine

@justlevinejustlevine commented Sep 13, 2025

Copy link
Copy Markdown
Contributor

What

This PR exposes the register_ability_args filter as a way to centrally extend and change the behavior of registered abilities.

Why

How

  • wp_ability_args is used before the merge to core, but it should be changed to abilities_api as part of 6.9 IMO. changed to register_ability_args

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces the wp_ability_args filter to the Abilities API, allowing developers to modify ability arguments before validation and instantiation. This provides a centralized mechanism for extending and customizing ability behavior.

  • Adds a filter hook in the registry's register method to modify ability arguments
  • Includes comprehensive documentation with usage examples
  • Uses wp_ prefix to avoid naming collisions before core integration

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

FileDescription
includes/abilities-api/class-wp-abilities-registry.phpAdds the wp_ability_args filter in the register method before validation
docs/5.hooks.mdDocuments the new filter with detailed usage examples and parameters

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@codecov

codecovBot commented Sep 13, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.64%. Comparing base (4beab25) to head (36c0e99).
⚠️ Report is 1 commits behind head on trunk.

Additional details and impacted files
@@ Coverage Diff @@## trunk #74 +/- ##
============================================
+ Coverage 84.84% 85.64% +0.79% 
Complexity 102 102 ============================================
Files 16 16 Lines 772 773 +1 Branches 86 86 ============================================
+ Hits 655 662 +7 + Misses 117 111 -6 
FlagCoverage Δ
javascript92.66% <ø> (ø)
unit82.88% <100.00%> (+1.11%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

justlevineand others added 2 commits September 13, 2025 20:10
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@justlevine
justlevine marked this pull request as ready for review September 13, 2025 17:17
@github-actions

github-actionsBot commented Sep 13, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: justlevine <justlevine@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left some minor feedback. Overall, I'm very much in favor of the proposed extensibility option.

Comment threadincludes/abilities-api/class-wp-abilities-registry.php Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@gziologziolo added the [Type] Enhancement New feature or request label Sep 15, 2025
@gziolo

gziolo commented Sep 17, 2025

Copy link
Copy Markdown
Member

We will also need some basic unit test coverage to illustrate the expected behavior better and prevent future regressions.

I plan to add some tests today to:

We can coordinate how to ensure we avoid more complex merge conflicts.

@gziolo

Copy link
Copy Markdown
Member

I plan to add some tests today to:

#56

For your information. Tests for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/tests/unit/abilities-api/wpAbility.php. Docs for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/docs/6.hooks.md.

@gziologziolo changed the title dev: add wp_ability_args filter [Proposal]dev: add register_ability_args filter [Proposal]Sep 23, 2025
@gziolo

Copy link
Copy Markdown
Member

@galatanovidiu, this proposed filter register_ability_args that allows changing $args during registration should be essential for extenders that want to annotate existing abilities for usage with the MCP adapter when such information is missing.

@justlevine

Copy link
Copy Markdown
ContributorAuthor

@gziolo feedback addressed, tests added, and merged the action/filter docs (structure too, not just pasting the two together). PTAL and let me know what you think 🙏

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition to the documentation and test coverage. Thank you for addressing my feedback.

I left some small notes to address before merging changes 🚀

Comment threaddocs/6.hooks.md Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Co-authored-by: Greg Ziółkowski <grzegorz@gziolo.pl>
@gziolo
gziolo merged commit 309f5a0 into WordPress:trunkSep 29, 2025
22 checks passed
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] EnhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@justlevine@gziolo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

dev: add register_ability_args filter [Proposal] - #74

Merged
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter
Sep 29, 2025
Merged

dev: add register_ability_args filter [Proposal]#74
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter

Conversation

@justlevine

@justlevinejustlevine commented Sep 13, 2025

Copy link
Copy Markdown
Contributor

What

This PR exposes the register_ability_args filter as a way to centrally extend and change the behavior of registered abilities.

Why

How

  • wp_ability_args is used before the merge to core, but it should be changed to abilities_api as part of 6.9 IMO. changed to register_ability_args

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces the wp_ability_args filter to the Abilities API, allowing developers to modify ability arguments before validation and instantiation. This provides a centralized mechanism for extending and customizing ability behavior.

  • Adds a filter hook in the registry's register method to modify ability arguments
  • Includes comprehensive documentation with usage examples
  • Uses wp_ prefix to avoid naming collisions before core integration

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

FileDescription
includes/abilities-api/class-wp-abilities-registry.phpAdds the wp_ability_args filter in the register method before validation
docs/5.hooks.mdDocuments the new filter with detailed usage examples and parameters

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@codecov

codecovBot commented Sep 13, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.64%. Comparing base (4beab25) to head (36c0e99).
⚠️ Report is 1 commits behind head on trunk.

Additional details and impacted files
@@ Coverage Diff @@## trunk #74 +/- ##
============================================
+ Coverage 84.84% 85.64% +0.79% 
Complexity 102 102 ============================================
Files 16 16 Lines 772 773 +1 Branches 86 86 ============================================
+ Hits 655 662 +7 + Misses 117 111 -6 
FlagCoverage Δ
javascript92.66% <ø> (ø)
unit82.88% <100.00%> (+1.11%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

justlevineand others added 2 commits September 13, 2025 20:10
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@justlevine
justlevine marked this pull request as ready for review September 13, 2025 17:17
@github-actions

github-actionsBot commented Sep 13, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: justlevine <justlevine@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left some minor feedback. Overall, I'm very much in favor of the proposed extensibility option.

Comment threadincludes/abilities-api/class-wp-abilities-registry.php Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@gziologziolo added the [Type] Enhancement New feature or request label Sep 15, 2025
@gziolo

gziolo commented Sep 17, 2025

Copy link
Copy Markdown
Member

We will also need some basic unit test coverage to illustrate the expected behavior better and prevent future regressions.

I plan to add some tests today to:

We can coordinate how to ensure we avoid more complex merge conflicts.

@gziolo

Copy link
Copy Markdown
Member

I plan to add some tests today to:

#56

For your information. Tests for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/tests/unit/abilities-api/wpAbility.php. Docs for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/docs/6.hooks.md.

@gziologziolo changed the title dev: add wp_ability_args filter [Proposal]dev: add register_ability_args filter [Proposal]Sep 23, 2025
@gziolo

Copy link
Copy Markdown
Member

@galatanovidiu, this proposed filter register_ability_args that allows changing $args during registration should be essential for extenders that want to annotate existing abilities for usage with the MCP adapter when such information is missing.

@justlevine

Copy link
Copy Markdown
ContributorAuthor

@gziolo feedback addressed, tests added, and merged the action/filter docs (structure too, not just pasting the two together). PTAL and let me know what you think 🙏

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition to the documentation and test coverage. Thank you for addressing my feedback.

I left some small notes to address before merging changes 🚀

Comment threaddocs/6.hooks.md Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Co-authored-by: Greg Ziółkowski <grzegorz@gziolo.pl>
@gziolo
gziolo merged commit 309f5a0 into WordPress:trunkSep 29, 2025
22 checks passed
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] EnhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@justlevine@gziolo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

dev: add register_ability_args filter [Proposal] - #74

Merged
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter
Sep 29, 2025
Merged

dev: add register_ability_args filter [Proposal]#74
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter

Conversation

@justlevine

@justlevinejustlevine commented Sep 13, 2025

Copy link
Copy Markdown
Contributor

What

This PR exposes the register_ability_args filter as a way to centrally extend and change the behavior of registered abilities.

Why

How

  • wp_ability_args is used before the merge to core, but it should be changed to abilities_api as part of 6.9 IMO. changed to register_ability_args

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces the wp_ability_args filter to the Abilities API, allowing developers to modify ability arguments before validation and instantiation. This provides a centralized mechanism for extending and customizing ability behavior.

  • Adds a filter hook in the registry's register method to modify ability arguments
  • Includes comprehensive documentation with usage examples
  • Uses wp_ prefix to avoid naming collisions before core integration

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

FileDescription
includes/abilities-api/class-wp-abilities-registry.phpAdds the wp_ability_args filter in the register method before validation
docs/5.hooks.mdDocuments the new filter with detailed usage examples and parameters

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@codecov

codecovBot commented Sep 13, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.64%. Comparing base (4beab25) to head (36c0e99).
⚠️ Report is 1 commits behind head on trunk.

Additional details and impacted files
@@ Coverage Diff @@## trunk #74 +/- ##
============================================
+ Coverage 84.84% 85.64% +0.79% 
Complexity 102 102 ============================================
Files 16 16 Lines 772 773 +1 Branches 86 86 ============================================
+ Hits 655 662 +7 + Misses 117 111 -6 
FlagCoverage Δ
javascript92.66% <ø> (ø)
unit82.88% <100.00%> (+1.11%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

justlevineand others added 2 commits September 13, 2025 20:10
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@justlevine
justlevine marked this pull request as ready for review September 13, 2025 17:17
@github-actions

github-actionsBot commented Sep 13, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: justlevine <justlevine@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left some minor feedback. Overall, I'm very much in favor of the proposed extensibility option.

Comment threadincludes/abilities-api/class-wp-abilities-registry.php Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@gziologziolo added the [Type] Enhancement New feature or request label Sep 15, 2025
@gziolo

gziolo commented Sep 17, 2025

Copy link
Copy Markdown
Member

We will also need some basic unit test coverage to illustrate the expected behavior better and prevent future regressions.

I plan to add some tests today to:

We can coordinate how to ensure we avoid more complex merge conflicts.

@gziolo

Copy link
Copy Markdown
Member

I plan to add some tests today to:

#56

For your information. Tests for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/tests/unit/abilities-api/wpAbility.php. Docs for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/docs/6.hooks.md.

@gziologziolo changed the title dev: add wp_ability_args filter [Proposal]dev: add register_ability_args filter [Proposal]Sep 23, 2025
@gziolo

Copy link
Copy Markdown
Member

@galatanovidiu, this proposed filter register_ability_args that allows changing $args during registration should be essential for extenders that want to annotate existing abilities for usage with the MCP adapter when such information is missing.

@justlevine

Copy link
Copy Markdown
ContributorAuthor

@gziolo feedback addressed, tests added, and merged the action/filter docs (structure too, not just pasting the two together). PTAL and let me know what you think 🙏

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition to the documentation and test coverage. Thank you for addressing my feedback.

I left some small notes to address before merging changes 🚀

Comment threaddocs/6.hooks.md Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Co-authored-by: Greg Ziółkowski <grzegorz@gziolo.pl>
@gziolo
gziolo merged commit 309f5a0 into WordPress:trunkSep 29, 2025
22 checks passed
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] EnhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@justlevine@gziolo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

dev: add register_ability_args filter [Proposal] - #74

Merged
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter
Sep 29, 2025
Merged

dev: add register_ability_args filter [Proposal]#74
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter

Conversation

@justlevine

@justlevinejustlevine commented Sep 13, 2025

Copy link
Copy Markdown
Contributor

What

This PR exposes the register_ability_args filter as a way to centrally extend and change the behavior of registered abilities.

Why

How

  • wp_ability_args is used before the merge to core, but it should be changed to abilities_api as part of 6.9 IMO. changed to register_ability_args

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces the wp_ability_args filter to the Abilities API, allowing developers to modify ability arguments before validation and instantiation. This provides a centralized mechanism for extending and customizing ability behavior.

  • Adds a filter hook in the registry's register method to modify ability arguments
  • Includes comprehensive documentation with usage examples
  • Uses wp_ prefix to avoid naming collisions before core integration

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

FileDescription
includes/abilities-api/class-wp-abilities-registry.phpAdds the wp_ability_args filter in the register method before validation
docs/5.hooks.mdDocuments the new filter with detailed usage examples and parameters

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@codecov

codecovBot commented Sep 13, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.64%. Comparing base (4beab25) to head (36c0e99).
⚠️ Report is 1 commits behind head on trunk.

Additional details and impacted files
@@ Coverage Diff @@## trunk #74 +/- ##
============================================
+ Coverage 84.84% 85.64% +0.79% 
Complexity 102 102 ============================================
Files 16 16 Lines 772 773 +1 Branches 86 86 ============================================
+ Hits 655 662 +7 + Misses 117 111 -6 
FlagCoverage Δ
javascript92.66% <ø> (ø)
unit82.88% <100.00%> (+1.11%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

justlevineand others added 2 commits September 13, 2025 20:10
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@justlevine
justlevine marked this pull request as ready for review September 13, 2025 17:17
@github-actions

github-actionsBot commented Sep 13, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: justlevine <justlevine@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left some minor feedback. Overall, I'm very much in favor of the proposed extensibility option.

Comment threadincludes/abilities-api/class-wp-abilities-registry.php Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@gziologziolo added the [Type] Enhancement New feature or request label Sep 15, 2025
@gziolo

gziolo commented Sep 17, 2025

Copy link
Copy Markdown
Member

We will also need some basic unit test coverage to illustrate the expected behavior better and prevent future regressions.

I plan to add some tests today to:

We can coordinate how to ensure we avoid more complex merge conflicts.

@gziolo

Copy link
Copy Markdown
Member

I plan to add some tests today to:

#56

For your information. Tests for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/tests/unit/abilities-api/wpAbility.php. Docs for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/docs/6.hooks.md.

@gziologziolo changed the title dev: add wp_ability_args filter [Proposal]dev: add register_ability_args filter [Proposal]Sep 23, 2025
@gziolo

Copy link
Copy Markdown
Member

@galatanovidiu, this proposed filter register_ability_args that allows changing $args during registration should be essential for extenders that want to annotate existing abilities for usage with the MCP adapter when such information is missing.

@justlevine

Copy link
Copy Markdown
ContributorAuthor

@gziolo feedback addressed, tests added, and merged the action/filter docs (structure too, not just pasting the two together). PTAL and let me know what you think 🙏

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition to the documentation and test coverage. Thank you for addressing my feedback.

I left some small notes to address before merging changes 🚀

Comment threaddocs/6.hooks.md Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Co-authored-by: Greg Ziółkowski <grzegorz@gziolo.pl>
@gziolo
gziolo merged commit 309f5a0 into WordPress:trunkSep 29, 2025
22 checks passed
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] EnhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@justlevine@gziolo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

dev: add register_ability_args filter [Proposal] - #74

Merged
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter
Sep 29, 2025
Merged

dev: add register_ability_args filter [Proposal]#74
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter

Conversation

@justlevine

@justlevinejustlevine commented Sep 13, 2025

Copy link
Copy Markdown
Contributor

What

This PR exposes the register_ability_args filter as a way to centrally extend and change the behavior of registered abilities.

Why

How

  • wp_ability_args is used before the merge to core, but it should be changed to abilities_api as part of 6.9 IMO. changed to register_ability_args

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces the wp_ability_args filter to the Abilities API, allowing developers to modify ability arguments before validation and instantiation. This provides a centralized mechanism for extending and customizing ability behavior.

  • Adds a filter hook in the registry's register method to modify ability arguments
  • Includes comprehensive documentation with usage examples
  • Uses wp_ prefix to avoid naming collisions before core integration

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

FileDescription
includes/abilities-api/class-wp-abilities-registry.phpAdds the wp_ability_args filter in the register method before validation
docs/5.hooks.mdDocuments the new filter with detailed usage examples and parameters

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@codecov

codecovBot commented Sep 13, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.64%. Comparing base (4beab25) to head (36c0e99).
⚠️ Report is 1 commits behind head on trunk.

Additional details and impacted files
@@ Coverage Diff @@## trunk #74 +/- ##
============================================
+ Coverage 84.84% 85.64% +0.79% 
Complexity 102 102 ============================================
Files 16 16 Lines 772 773 +1 Branches 86 86 ============================================
+ Hits 655 662 +7 + Misses 117 111 -6 
FlagCoverage Δ
javascript92.66% <ø> (ø)
unit82.88% <100.00%> (+1.11%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

justlevineand others added 2 commits September 13, 2025 20:10
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@justlevine
justlevine marked this pull request as ready for review September 13, 2025 17:17
@github-actions

github-actionsBot commented Sep 13, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: justlevine <justlevine@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left some minor feedback. Overall, I'm very much in favor of the proposed extensibility option.

Comment threadincludes/abilities-api/class-wp-abilities-registry.php Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@gziologziolo added the [Type] Enhancement New feature or request label Sep 15, 2025
@gziolo

gziolo commented Sep 17, 2025

Copy link
Copy Markdown
Member

We will also need some basic unit test coverage to illustrate the expected behavior better and prevent future regressions.

I plan to add some tests today to:

We can coordinate how to ensure we avoid more complex merge conflicts.

@gziolo

Copy link
Copy Markdown
Member

I plan to add some tests today to:

#56

For your information. Tests for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/tests/unit/abilities-api/wpAbility.php. Docs for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/docs/6.hooks.md.

@gziologziolo changed the title dev: add wp_ability_args filter [Proposal]dev: add register_ability_args filter [Proposal]Sep 23, 2025
@gziolo

Copy link
Copy Markdown
Member

@galatanovidiu, this proposed filter register_ability_args that allows changing $args during registration should be essential for extenders that want to annotate existing abilities for usage with the MCP adapter when such information is missing.

@justlevine

Copy link
Copy Markdown
ContributorAuthor

@gziolo feedback addressed, tests added, and merged the action/filter docs (structure too, not just pasting the two together). PTAL and let me know what you think 🙏

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition to the documentation and test coverage. Thank you for addressing my feedback.

I left some small notes to address before merging changes 🚀

Comment threaddocs/6.hooks.md Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Co-authored-by: Greg Ziółkowski <grzegorz@gziolo.pl>
@gziolo
gziolo merged commit 309f5a0 into WordPress:trunkSep 29, 2025
22 checks passed
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] EnhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@justlevine@gziolo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

dev: add register_ability_args filter [Proposal] - #74

Merged
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter
Sep 29, 2025
Merged

dev: add register_ability_args filter [Proposal]#74
gziolo merged 11 commits into
WordPress:trunkfrom
justlevine:dev/wp_ability_args-filter

Conversation

@justlevine

@justlevinejustlevine commented Sep 13, 2025

Copy link
Copy Markdown
Contributor

What

This PR exposes the register_ability_args filter as a way to centrally extend and change the behavior of registered abilities.

Why

How

  • wp_ability_args is used before the merge to core, but it should be changed to abilities_api as part of 6.9 IMO. changed to register_ability_args

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces the wp_ability_args filter to the Abilities API, allowing developers to modify ability arguments before validation and instantiation. This provides a centralized mechanism for extending and customizing ability behavior.

  • Adds a filter hook in the registry's register method to modify ability arguments
  • Includes comprehensive documentation with usage examples
  • Uses wp_ prefix to avoid naming collisions before core integration

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

FileDescription
includes/abilities-api/class-wp-abilities-registry.phpAdds the wp_ability_args filter in the register method before validation
docs/5.hooks.mdDocuments the new filter with detailed usage examples and parameters

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@codecov

codecovBot commented Sep 13, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.64%. Comparing base (4beab25) to head (36c0e99).
⚠️ Report is 1 commits behind head on trunk.

Additional details and impacted files
@@ Coverage Diff @@## trunk #74 +/- ##
============================================
+ Coverage 84.84% 85.64% +0.79% 
Complexity 102 102 ============================================
Files 16 16 Lines 772 773 +1 Branches 86 86 ============================================
+ Hits 655 662 +7 + Misses 117 111 -6 
FlagCoverage Δ
javascript92.66% <ø> (ø)
unit82.88% <100.00%> (+1.11%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

justlevineand others added 2 commits September 13, 2025 20:10
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@justlevine
justlevine marked this pull request as ready for review September 13, 2025 17:17
@github-actions

github-actionsBot commented Sep 13, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: justlevine <justlevine@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left some minor feedback. Overall, I'm very much in favor of the proposed extensibility option.

Comment threadincludes/abilities-api/class-wp-abilities-registry.php Outdated
Comment threaddocs/5.hooks.md Outdated
Comment threaddocs/5.hooks.md Outdated
@gziologziolo added the [Type] Enhancement New feature or request label Sep 15, 2025
@gziolo

gziolo commented Sep 17, 2025

Copy link
Copy Markdown
Member

We will also need some basic unit test coverage to illustrate the expected behavior better and prevent future regressions.

I plan to add some tests today to:

We can coordinate how to ensure we avoid more complex merge conflicts.

@gziolo

Copy link
Copy Markdown
Member

I plan to add some tests today to:

#56

For your information. Tests for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/tests/unit/abilities-api/wpAbility.php. Docs for hooks live in https://github.com/WordPress/abilities-api/blob/trunk/docs/6.hooks.md.

@gziologziolo changed the title dev: add wp_ability_args filter [Proposal]dev: add register_ability_args filter [Proposal]Sep 23, 2025
@gziolo

Copy link
Copy Markdown
Member

@galatanovidiu, this proposed filter register_ability_args that allows changing $args during registration should be essential for extenders that want to annotate existing abilities for usage with the MCP adapter when such information is missing.

@justlevine

Copy link
Copy Markdown
ContributorAuthor

@gziolo feedback addressed, tests added, and merged the action/filter docs (structure too, not just pasting the two together). PTAL and let me know what you think 🙏

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition to the documentation and test coverage. Thank you for addressing my feedback.

I left some small notes to address before merging changes 🚀

Comment threaddocs/6.hooks.md Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Comment threadtests/unit/abilities-api/wpAbilitiesRegistry.php Outdated
Co-authored-by: Greg Ziółkowski <grzegorz@gziolo.pl>
@gziolo
gziolo merged commit 309f5a0 into WordPress:trunkSep 29, 2025
22 checks passed
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] EnhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@justlevine@gziolo