PluginProbe
OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin / 1.1.10
OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin v1.1.10
1.1.10 1.1.9 1.1.8 1.1.7 1.1.6 1.1.5 1.1.4 1.1.3 1.1.2 1.1.1 1.1.0 1.0.1 1.0.0 0.9.8 0.9.7 0.9.6 0.9.4 0.9.5 0.9.3 0.9.2 0.9.1 0.9.0 0.8.9 0.8.8 0.8.7 All 34 releases
← All changes | includes/ai-copilot/abilities.php +9 -6 1.1.31.1.10 View file →
@@ -240,9 +240,9 @@
240 240 wp_register_ability(
241 241 'desktop-mode/search-comments',
242 242 array(
243 243 'label' => __( 'Search comments', 'desktop-mode' ),
244 - 'description' => 'Keyword-searches approved WordPress comments across ALL posts by their text (WordPress native search). Use this when the user remembers something a reader said but does not know which post it was on. Pass the distinctive words from the comment as `query`. Returns up to 10 matching comments with an excerpt, parent post title, and URLs. If has_more is true, call again with the next offset.',
244 + 'description' => 'Keyword-searches approved WordPress comments by their text (WordPress native search), across all posts the requesting user is allowed to read — comments on private, draft, or password-protected posts the user cannot access are excluded. Use this when the user remembers something a reader said but does not know which post it was on. Pass the distinctive words from the comment as `query`. Returns up to 10 matching comments with an excerpt, parent post title, and URLs. If has_more is true, call again with the next offset.',
245 245 'category' => OPENSTATION_AI_ABILITY_CATEGORY,
246 246 'input_schema' => $query_offset_input,
247 247 'output_schema' => $search_output,
248 248 'execute_callback' => static function ( $input ) {
@@ -256,9 +256,9 @@
256 256 wp_register_ability(
257 257 'desktop-mode/search-comments-by-post',
258 258 array(
259 259 'label' => __( 'Search comments on a post', 'desktop-mode' ),
260 - 'description' => 'Keyword-searches approved comments on a SPECIFIC post by its WordPress ID. Use this when you have already identified a post (via search-posts) and the user\'s query also mentions something a reader said on that post — e.g. "I remember a comment on my Málaga post asking about the Alcazaba at night." Call search-posts first to find the post ID, then call this tool with that ID and the distinctive words as `query`. Much more precise than search-comments when the parent post is known. If has_more is true, call again with the next offset.',
260 + 'description' => 'Keyword-searches approved comments on a SPECIFIC post by its WordPress ID (the post must be readable by the requesting user; an unreadable or nonexistent post returns an empty result). Use this when you have already identified a post (via search-posts) and the user\'s query also mentions something a reader said on that post — e.g. "I remember a comment on my Málaga post asking about the Alcazaba at night." Call search-posts first to find the post ID, then call this tool with that ID and the distinctive words as `query`. Much more precise than search-comments when the parent post is known. If has_more is true, call again with the next offset.',
261 261 'category' => OPENSTATION_AI_ABILITY_CATEGORY,
262 262 'input_schema' => array(
263 263 'type' => 'object',
264 264 'additionalProperties' => false,
@@ -399,11 +399,14 @@
399 399 /**
400 400 * Registers the comment-spam analysis ability.
401 401 *
402 402 * Not offered to the model during a search turn (see
403 - * {@see openstation_ai_search_ability_names()}); the moderation pipeline
404 - * resolves and executes it directly ({@see openstation_ai_analyze_comment_now()}
405 - * runs through it). Exposed in the abilities catalog for observability + reuse.
403 + * {@see openstation_ai_search_ability_names()}) — a search turn can be driven
404 + * by attacker-controlled comment text, and this one spends provider tokens.
405 + * It is an on-demand ability: a caller with `moderate_comments` runs it for one
406 + * comment and gets the verdict back. Automatic scoring on comment save was
407 + * removed (`docs/migration-comments-ai-scoring.md`), so nothing in the plugin
408 + * invokes it on its own.
406 409 *
407 410 * @return void
408 411 */
409 412 function openstation_ai_register_comment_analysis_ability() {
@@ -410,9 +413,9 @@
410 413 wp_register_ability(
411 414 'desktop-mode/analyze-comment',
412 415 array(
413 416 'label' => __( 'Analyze comment for spam', 'desktop-mode' ),
414 - 'description' => 'Runs the AI spam/harm analysis for a single comment and returns its structured verdict ({ topic, ai_summary, harmful, spam }). Used by comment moderation to score incoming comments.',
417 + 'description' => 'Runs the AI spam/harm analysis for a single comment and returns its structured verdict ({ topic, ai_summary, harmful, spam }). On-demand only: nothing in the plugin runs it automatically.',
415 418 'category' => OPENSTATION_AI_ABILITY_CATEGORY,
416 419 'input_schema' => array(
417 420 'type' => 'object',
418 421 'additionalProperties' => false,