Skip to content

WIP Remove jumper is support of command palette#285

Merged
superdav42 merged 2 commits intomainfrom
command-palette
Apr 1, 2026
Merged

WIP Remove jumper is support of command palette#285
superdav42 merged 2 commits intomainfrom
command-palette

Conversation

@superdav42
Copy link
Copy Markdown
Collaborator

@superdav42 superdav42 commented Dec 6, 2025

Summary by CodeRabbit

  • Removed Features
    • The Jumper navigation widget and all related admin UI (quick search, keyboard shortcuts, custom links, dynamic menu generation, menu caching, and trigger/display behavior) have been removed.
  • Refactor
    • Minor internal update to command-palette URL handling (no user-facing behavior changes).

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Dec 6, 2025

📝 Walkthrough

Walkthrough

This PR removes the Jumper UI: deletes its CSS and JS assets, removes the Jumper UI class and related admin integration, and removes related AJAX search handlers; also includes a small change to command-palette slug handling.

Changes

Cohort / File(s) Summary
Jumper Frontend Assets
assets/css/jumper.css, assets/js/jumper.js
Deleted the Jumper widget's CSS and JS: all styling, Selectize initialization, AJAX search requests, option rendering, URL routing/redirect logic, click/keyboard handlers, and open/close behavior.
Jumper Backend Class
inc/ui/class-jumper.php
Removed the entire WP_Ultimo\UI\Jumper class (Singleton): admin hooks, enqueueing, output/rendering, dynamic menu/link generation, transient caching, settings, rebuild trigger, and helper utilities.
Jumper AJAX Endpoints
inc/class-ajax.php
Removed registration and implementations of search-related AJAX handlers and template renderer (search_models, search_all_models, search_wp_ultimo_setting, search_wordpress_users, render_selectize_templates); retained other list-table AJAX wiring.
Command Palette Fix
assets/js/command-palette.js
Small change: replaced use of regex replace with slug.replaceAll('_', '-') when constructing entity list page URLs.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐇 I hopped through menus, keys alight,

I sang of shortcuts in the night.
Now styles and scripts have gone away,
I nibble crumbs of code today.
Farewell, quick jumper — off I bounce! 🥕

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title contains a grammatical error ('is support' instead of 'in support') and is vague; it references jumper removal and command palette but lacks clarity about the main change. Revise the title to be grammatically correct and more specific, such as 'Remove jumper widget in favor of command palette' or 'Replace jumper with command palette integration'.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch command-palette

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (6)
inc/managers/class-customer-manager.php (1)

21-24: Fix misleading class docblock for Customer_Manager

The docblock says “Handles processes related to webhooks,” but this class manages customers. Consider updating it for clarity:

- * Handles processes related to webhooks.
+ * Handles processes related to customers.
assets/js/command-palette.js (2)

15-19: Remove or conditionally enable debug console.log statements before release.

Multiple console.log statements are present throughout the file for debugging purposes. These should be removed or wrapped in a debug flag check before production release to avoid cluttering the browser console.

Consider wrapping debug logs in a conditional:

+const DEBUG = config.debug || false;
+
+function log(...args) {
+    if (DEBUG) {
+        console.log('[Ultimate Multisite]', ...args);
+    }
+}
+
 // Then replace console.log calls with:
-console.log('[Ultimate Multisite] Command palette API detected, initializing...');
+log('Command palette API detected, initializing...');

Also applies to: 32-37, 82-82, 88-88, 114-114, 150-150, 174-174, 195-195


286-286: Pluralization fallback may not handle irregular plurals.

The fallback entity.label + 's' assumes regular English pluralization. While label_plural from the backend should normally be provided, consider that irregular nouns (e.g., "Category" → "Categories") won't be handled correctly by the fallback.

This is acceptable if the backend consistently provides label_plural, but worth noting for edge cases or third-party extensions.

inc/apis/trait-command-palette.php (1)

115-118: Simple pluralization may not handle irregular nouns.

Adding 's' works for current entity types but won't handle irregular plurals correctly. Consider allowing managers to override this method or providing explicit plural forms in the configuration.

Current entity names (customer, site, membership, etc.) pluralize correctly with 's', so this is acceptable for now but worth noting for future extensibility.

inc/apis/class-command-palette-rest-controller.php (2)

145-145: Remove redundant default value.

The limit parameter already has a default value of 15 defined in get_search_params() (Line 103). The ?: 15 fallback is unnecessary.

Apply this diff:

-		$limit       = $request->get_param('limit') ?: 15;
+		$limit       = $request->get_param('limit');

147-155: Consider removing duplicate validation.

The minimum query length check here duplicates the validation callback defined in get_search_params() (Line 90). The REST framework will reject requests with short queries before reaching this handler.

This block can be safely removed:

-		// Minimum query length
-		if (strlen($query) < 2) {
-			return rest_ensure_response(
-				[
-					'results' => [],
-					'message' => __('Query must be at least 2 characters.', 'ultimate-multisite'),
-				]
-			);
-		}
-
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 165ab6e and 77bd44f.

📒 Files selected for processing (19)
  • assets/css/jumper.css (0 hunks)
  • assets/js/command-palette.js (1 hunks)
  • assets/js/jumper.js (0 hunks)
  • inc/apis/class-command-palette-rest-controller.php (1 hunks)
  • inc/apis/trait-command-palette.php (1 hunks)
  • inc/class-ajax.php (0 hunks)
  • inc/class-wp-ultimo.php (1 hunks)
  • inc/managers/class-broadcast-manager.php (2 hunks)
  • inc/managers/class-checkout-form-manager.php (2 hunks)
  • inc/managers/class-customer-manager.php (2 hunks)
  • inc/managers/class-discount-code-manager.php (2 hunks)
  • inc/managers/class-domain-manager.php (2 hunks)
  • inc/managers/class-membership-manager.php (2 hunks)
  • inc/managers/class-payment-manager.php (2 hunks)
  • inc/managers/class-product-manager.php (2 hunks)
  • inc/managers/class-site-manager.php (2 hunks)
  • inc/managers/class-webhook-manager.php (2 hunks)
  • inc/ui/class-command-palette-manager.php (1 hunks)
  • inc/ui/class-jumper.php (0 hunks)
💤 Files with no reviewable changes (4)
  • assets/css/jumper.css
  • inc/class-ajax.php
  • assets/js/jumper.js
  • inc/ui/class-jumper.php
🧰 Additional context used
🧬 Code graph analysis (10)
inc/managers/class-customer-manager.php (2)
inc/class-wp-ultimo.php (1)
  • WP_Ultimo (23-956)
inc/apis/trait-command-palette.php (1)
  • enable_command_palette (42-50)
inc/managers/class-payment-manager.php (2)
inc/class-wp-ultimo.php (1)
  • WP_Ultimo (23-956)
inc/apis/trait-command-palette.php (1)
  • enable_command_palette (42-50)
inc/managers/class-membership-manager.php (2)
inc/class-wp-ultimo.php (1)
  • WP_Ultimo (23-956)
inc/apis/trait-command-palette.php (1)
  • enable_command_palette (42-50)
inc/managers/class-site-manager.php (2)
inc/class-wp-ultimo.php (1)
  • WP_Ultimo (23-956)
inc/apis/trait-command-palette.php (1)
  • enable_command_palette (42-50)
inc/managers/class-domain-manager.php (2)
inc/class-wp-ultimo.php (1)
  • WP_Ultimo (23-956)
inc/apis/trait-command-palette.php (1)
  • enable_command_palette (42-50)
inc/class-wp-ultimo.php (4)
ultimate-multisite.php (1)
  • WP_Ultimo (124-126)
inc/ui/class-command-palette-manager.php (1)
  • Command_Palette_Manager (22-247)
inc/deprecated/deprecated.php (1)
  • get_instance (353-356)
inc/apis/class-command-palette-rest-controller.php (1)
  • Command_Palette_Rest_Controller (22-266)
assets/js/command-palette.js (1)
inc/apis/class-command-palette-rest-controller.php (2)
  • search (141-213)
  • init (48-51)
inc/ui/class-command-palette-manager.php (2)
inc/apis/class-command-palette-rest-controller.php (1)
  • init (48-51)
inc/functions/helper.php (1)
  • wu_get_version (21-24)
inc/managers/class-discount-code-manager.php (2)
inc/class-wp-ultimo.php (1)
  • WP_Ultimo (23-956)
inc/apis/trait-command-palette.php (1)
  • enable_command_palette (42-50)
inc/apis/trait-command-palette.php (3)
inc/ui/class-command-palette-manager.php (1)
  • register_entity_type (108-111)
inc/models/class-customer.php (2)
  • get_display_name (211-220)
  • get_email_address (284-293)
inc/models/class-discount-code.php (1)
  • get_code (219-222)
🪛 PHPMD (2.15.0)
inc/apis/class-command-palette-rest-controller.php

182-182: Avoid unused local variables such as '$config'. (undefined)

(UnusedLocalVariable)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: cypress (8.2, chrome)
  • GitHub Check: cypress (8.1, chrome)
🔇 Additional comments (28)
inc/managers/class-broadcast-manager.php (1)

31-32: Command Palette wiring for broadcasts matches the shared pattern

Including \WP_Ultimo\Apis\Command_Palette and invoking enable_command_palette() in init() cleanly opts Broadcast_Manager into the new command palette flow without changing existing behavior.

Also applies to: 64-65

inc/managers/class-payment-manager.php (1)

34-35: Payments now correctly participate in the command palette

Adding the Command_Palette trait and calling enable_command_palette() during init() brings payments into the centralized search/navigation system with no impact on existing hooks.

Also applies to: 68-69

inc/managers/class-domain-manager.php (1)

32-33: Domain manager command palette support is hooked up correctly

Using the Command_Palette trait and enabling it in init() is consistent with other managers and should make domains available to the command palette without affecting existing domain-mapping flows.

Also applies to: 139-140

inc/managers/class-webhook-manager.php (1)

30-31: Webhook manager palette integration is consistent and non‑disruptive

Trait inclusion plus enable_command_palette() in init() neatly registers webhooks with the new command palette infrastructure and leaves existing webhook behavior unchanged.

Also applies to: 79-80

inc/managers/class-customer-manager.php (1)

31-32: Customers are correctly opted into the command palette

Adding the Command_Palette trait and enabling it during init() aligns Customer_Manager with the other managers participating in command palette search, without altering existing login/verification logic.

Also applies to: 64-65

inc/managers/class-discount-code-manager.php (1)

30-31: Discount codes now exposed to the command palette as intended

Including the Command_Palette trait and calling enable_command_palette() in init() correctly wires Discount_Code_Manager into the shared command palette infrastructure without impacting the payment‑received listener.

Also applies to: 63-64

inc/class-wp-ultimo.php (1)

453-456: Core now boots the command palette manager and REST controller in the right place

Initializing WP_Ultimo\UI\Command_Palette_Manager and WP_Ultimo\Apis\Command_Palette_Rest_Controller from load_extra_components() is consistent with how other UI and API components are loaded and cleanly replaces the legacy Jumper bootstrap.

Also applies to: 457-460

inc/managers/class-checkout-form-manager.php (1)

28-29: Checkout forms are correctly registered for command palette support

Using the Command_Palette trait and calling enable_command_palette() in init() brings checkout forms into the shared palette ecosystem while keeping the manager’s responsibilities small and focused.

Also applies to: 59-60

inc/managers/class-membership-manager.php (1)

30-30: LGTM! Command Palette trait integration follows established patterns.

The trait usage and enable_command_palette() call are consistent with the existing Rest_Api, WP_CLI, and MCP_Abilities trait integrations in this manager.

Also applies to: 64-65

inc/managers/class-site-manager.php (1)

32-32: LGTM! Consistent Command Palette integration.

The trait integration mirrors the pattern used in other managers and follows the established conventions for enabling API capabilities.

Also applies to: 65-66

inc/managers/class-product-manager.php (1)

30-30: LGTM! Command Palette integration is consistent.

The trait usage and initialization call follow the same pattern established across other manager classes.

Also applies to: 62-63

assets/js/command-palette.js (1)

47-136: LGTM! Well-structured search hook with caching and debouncing.

The useEntitySearch hook implements sensible patterns: 300ms debounce for API calls, minimum 2-character search threshold, in-memory caching, and proper cleanup of timeouts. The cache persists for the page session which is appropriate for command palette usage.

inc/apis/trait-command-palette.php (4)

42-50: LGTM! Clean trait initialization pattern.

The enable_command_palette() method follows the established pattern from other API traits, with an early return guard and deferred registration via the init hook at priority 20.


254-269: LGTM! Robust title extraction with appropriate fallbacks.

The method chains through common getter methods (get_display_name, get_title, get_name) with a sensible ID-based fallback, ensuring a title is always returned regardless of entity type.


279-322: LGTM! Well-structured entity-specific subtitle generation.

The method appropriately uses method_exists checks before calling entity-specific getters, and the switch statement provides clean separation for different entity types. The bullet separator () provides a clean visual delimiter.


192-218: No action required. The wildcard search pattern 'search' => "*{$query}*" is fully supported and is the standard convention used throughout the codebase for search queries in wu_get_* functions (e.g., wu_get_sites(), wu_get_customers()). The implementation correctly follows established patterns.

inc/apis/class-command-palette-rest-controller.php (5)

1-51: LGTM! Clean class structure.

The controller follows WordPress REST API patterns with proper namespace usage and singleton initialization.


59-73: LGTM! Proper route registration.

The REST route is properly configured with appropriate methods, callbacks, and parameter validation.


81-109: LGTM! Well-defined search parameters.

The parameter definitions include appropriate validation, sanitization, and constraints.


225-248: LGTM! Solid delegation pattern.

The method properly validates the manager class, checks capabilities, and delegates to entity-specific search logic.


258-265: LGTM! Convention-based class resolution.

The method uses string manipulation to derive manager class names from entity slugs. While this relies on naming conventions, the class_exists() check provides safety, and this pattern appears consistent with the codebase's architecture.

inc/ui/class-command-palette-manager.php (7)

1-45: LGTM! Well-structured manager class.

The class follows WordPress patterns with proper initialization hooks and singleton usage.


54-71: LGTM! Appropriate version detection strategy.

The check for WordPress 6.4+ with JavaScript-based feature detection is a sound approach. The comment clarifies that 6.9+ has admin-wide support while 6.4+ has editor support.


79-97: LGTM! Appropriate context gating.

The method properly restricts Command Palette loading to admin area with appropriate capability checks.


108-122: LGTM! Clean entity registration API.

The registration methods provide a straightforward interface for managing entity types.


130-162: LGTM! Proper script enqueueing and configuration.

The script is properly enqueued with all necessary dependencies and comprehensive configuration data passed to JavaScript.


170-205: LGTM! Robust custom links parsing with backward compatibility.

The method properly parses custom links from the legacy jumper_custom_links setting (Line 172), maintaining backward compatibility during the Jumper-to-Command Palette migration. The use of explode(':', $line, 2) correctly handles URLs containing colons (e.g., ports, protocols).


213-246: LGTM! Clear settings interface.

The settings registration provides a clear interface for custom links configuration. The retention of the jumper_custom_links field ID maintains backward compatibility during the transition.

@superdav42
Copy link
Copy Markdown
Collaborator Author

the command pallet is not really ready yet. W'll review in WP 7

@superdav42 superdav42 closed this Mar 24, 2026
superdav42 added a commit that referenced this pull request Mar 25, 2026
Replaces the legacy Jumper quick-navigation widget with the native
WordPress Command Palette (Ctrl/Cmd+K), available since WordPress 6.4.

## What was built

- Command_Palette_Manager (inc/ui/): singleton that gates on WP 6.4+,
  enqueues command-palette.js, localises config (entities, REST URL,
  nonce, custom links), and registers a 'Tools > Command Palette' settings
  section reusing the existing jumper_custom_links setting.

- Command_Palette trait (inc/apis/): added to all 10 entity managers
  (broadcast, checkout_form, customer, discount_code, domain, membership,
  payment, product, site, webhook). Each manager calls
  enable_command_palette() in init(), which registers the entity with the
  manager on the 'init' hook.

- Command_Palette_Rest_Controller (inc/apis/): REST endpoint at
  ultimate-multisite/v1/command-palette/search. Requires manage_network
  capability. Searches all registered entity types (or a specific one via
  entity_type param), applies wu_command_palette_search_results filter.

- command-palette.js: registers a dynamic command loader (useEntitySearch
  hook with 300ms debounce, 2-char minimum, result caching) plus static
  commands for the dashboard, settings, system info, entity list pages,
  and custom links. Uses wp.commands, wp.element, wp.apiFetch.

- class-wp-ultimo.php: loads Command_Palette_Manager and
  Command_Palette_Rest_Controller instead of Jumper::get_instance().

## CodeRabbit fixes applied

- slug.replace('_', '-') → slug.replace(/_/g, '-') to handle multi-
  underscore slugs (e.g. checkout_form → checkout-forms).
- search_permissions_check(): removed strict bool return type; actual
  return is bool|WP_Error per WP REST API convention.
- foreach ($entities as $slug => $config): changed to
  foreach (array_keys($entities) as $slug) to avoid unused variable.

## Scope

The legacy Jumper UI is no longer loaded. The underlying AJAX search
handlers (search_models, render_selectize_templates) are intentionally
preserved — they are used by selectize dropdowns throughout the admin
and are not Jumper-specific.

Closes #474
Ref: PR #285 (closed WIP)
superdav42 added a commit that referenced this pull request Mar 25, 2026
#477)

feat: implement WordPress Command Palette to replace Jumper navigation

Implements the WordPress Command Palette (⌘K / Ctrl+K) as a replacement for the legacy Jumper navigation widget.

- Command_Palette_Manager, Command_Palette trait, REST controller
- Integrated across 10 entity managers
- command-palette.js with debounced search, static commands, custom links
- All CodeRabbit findings from PR #285 addressed upfront

Closes #474
Ref: PR #285 (closed WIP)
@superdav42 superdav42 reopened this Mar 31, 2026
@superdav42
Copy link
Copy Markdown
Collaborator Author

Dispatching worker to address 3 unresolved CodeRabbit suggestions before merge.

  • Branch: command-palette
  • Scope: Fix 3 minor CodeRabbit issues: (1) replaceAll for underscore replacement in command-palette.js, (2) fix return type declaration in class-command-palette-rest-controller.php, (3) remove unused $config variable
  • Attempt: 1 of 1
  • Direction: Address only the 3 flagged suggestions, do not refactor beyond that scope

aidevops.sh v3.5.538 plugin for OpenCode v1.3.0 with claude-sonnet-4-6 spent 2m and 5,554 tokens on this as a headless worker. Overall, 115d 19h since this issue was created.

@superdav42
Copy link
Copy Markdown
Collaborator Author

PR has merge conflicts — branch is 440 commits behind main. Dispatching worker to rebase.

  • Branch: command-palette
  • Scope: Rebase command-palette onto main, resolve conflicts, push
  • Attempt: 1 of 1
  • Direction: The branch adds WordPress Command Palette integration and removes the legacy Jumper widget. Focus on preserving the command palette feature while resolving conflicts with 440 commits of main changes.

aidevops.sh v3.5.538 plugin for OpenCode v1.3.0 with claude-sonnet-4-6 spent 8m and 14,919 tokens on this as a headless worker. Overall, 115d 19h since this issue was created.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
assets/js/command-palette.js (1)

10-37: Consider removing or gating console logs for production.

Multiple console.log statements throughout the file (lines 15, 19, 32-37, 82, 88, 114, 119, 150, 174, 195, 307) are useful for debugging but add noise in production. Consider wrapping them in a debug flag or removing them.

💡 Example approach
// Add near the top of the IIFE
const DEBUG = window.wuCommandPalette?.debug || false;
const log = DEBUG ? console.log.bind(console, '[Ultimate Multisite]') : () => {};

// Then replace console.log calls:
log('Command palette API detected, initializing...');
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@assets/js/command-palette.js` around lines 10 - 37, The file currently emits
multiple console.log calls (e.g., the initialization message and configuration
dump referencing config, entities, restUrl, customLinks) which should be gated
for production; add a DEBUG flag (sourced from window.wuCommandPalette?.debug)
near the top of the IIFE and create a log wrapper (e.g., const log = DEBUG ?
console.log.bind(console, '[Ultimate Multisite]') : () => {}) then replace all
console.log usages in this module (including the initialization, configuration
output and other debug lines) with the log wrapper so logs only appear when
DEBUG is true.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@inc/apis/class-command-palette-rest-controller.php`:
- Around line 119-131: Remove the PHP 8 union return type from the method
signature of search_permissions_check — delete ": bool|\WP_Error" so the
function has no return type declaration (leave the existing body that returns
true or new \WP_Error intact) and ensure the method is documented with PHPDoc to
state it returns bool|\WP_Error; this keeps compatibility with PHP 7.4 while
preserving behavior.

---

Nitpick comments:
In `@assets/js/command-palette.js`:
- Around line 10-37: The file currently emits multiple console.log calls (e.g.,
the initialization message and configuration dump referencing config, entities,
restUrl, customLinks) which should be gated for production; add a DEBUG flag
(sourced from window.wuCommandPalette?.debug) near the top of the IIFE and
create a log wrapper (e.g., const log = DEBUG ? console.log.bind(console,
'[Ultimate Multisite]') : () => {}) then replace all console.log usages in this
module (including the initialization, configuration output and other debug
lines) with the log wrapper so logs only appear when DEBUG is true.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b1a9ce4c-adad-4f45-b963-f541526efb4e

📥 Commits

Reviewing files that changed from the base of the PR and between 77bd44f and 2e0f73b.

📒 Files selected for processing (2)
  • assets/js/command-palette.js
  • inc/apis/class-command-palette-rest-controller.php

@superdav42
Copy link
Copy Markdown
Collaborator Author

Rebase worker exited without completing. The branch is 440 commits behind main with 7 conflict files:

  • assets/js/command-palette.js
  • inc/apis/class-command-palette-rest-controller.php
  • inc/apis/trait-command-palette.php
  • inc/class-ajax.php
  • inc/class-wp-ultimo.php
  • inc/ui/class-command-palette-manager.php
  • inc/ui/class-jumper.php

This rebase requires manual resolution — the conflicts span core files that have changed significantly in 440 commits. Recommend: maintainer manually rebases or cherry-picks the command palette feature onto a fresh branch from main.

Aborted the incomplete rebase to restore repo to clean state.


aidevops.sh v3.5.538 plugin for OpenCode v1.3.0 with claude-sonnet-4-6 spent 13m and 18,893 tokens on this as a headless worker. Overall, 115d 19h since this issue was created.

@superdav42
Copy link
Copy Markdown
Collaborator Author

Dispatching rebase worker.

  • Branch: command-palette
  • Scope: Rebase PR WIP Remove jumper is support of command palette #285 onto main to resolve merge conflicts (CONFLICTING state)
  • Attempt: 1 of 1
  • Direction: PR is WIP command palette feature replacing jumper UI. Rebase onto main, resolve conflicts, ensure CI passes.

aidevops.sh v3.5.538 plugin for OpenCode v1.3.0 with claude-sonnet-4-6 spent 5m and 13,575 tokens on this as a headless worker. Overall, 115d 19h since this issue was created.

@github-actions
Copy link
Copy Markdown

🔨 Build Complete - Ready for Testing!

📦 Download Build Artifact (Recommended)

Download the zip build, upload to WordPress and test:

🌐 Test in WordPress Playground (Very Experimental)

Click the link below to instantly test this PR in your browser - no installation needed!
Playground support for multisite is very limitied, hopefully it will get better in the future.

🚀 Launch in Playground

Login credentials: admin / password

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 31, 2026

Performance Test Results

Performance test results for 0751b95 are in 🛎️!

Note: the numbers in parentheses show the difference to the previous (baseline) test run. Differences below 2% or 0.5 in absolute values are not shown.

URL: /

Run DB Queries Memory Before Template Template WP Total LCP TTFB LCP - TTFB
0 41 37.79 MB 771.50 ms (-86.50 ms / -11% ) 167.00 ms (-6.00 ms / -4% ) 984.50 ms (-81.50 ms / -8% ) 1952.00 ms (-76.00 ms / -4% ) 1859.95 ms (-73.90 ms / -4% ) 90.50 ms (+3.85 ms / +4% )
1 56 49.01 MB 942.50 ms (+24.50 ms / +3% ) 147.00 ms (+4.00 ms / +3% ) 1090.50 ms (+29.00 ms / +3% ) 2076.00 ms 1996.35 ms (+44.40 ms / +2% ) 81.65 ms (+1.80 ms / +2% )

@superdav42
Copy link
Copy Markdown
Collaborator Author

Dispatching worker to address CodeRabbit review suggestions before merge.

  • Branch: command-palette
  • Scope: Fix 4 CodeRabbit suggestions: replaceAll for underscore replacement in command-palette.js, fix return type bool|WP_Error mismatch in REST controller, remove unused $config variable, fix PHP union type syntax for PHP 8.0+ compatibility
  • Attempt: 1 of 1
  • Direction: Address all 4 unresolved suggestions from CodeRabbit review. Push to command-palette branch.

aidevops.sh v3.5.538 plugin for OpenCode v1.3.0 with claude-sonnet-4-6 spent 16m and 13,387 tokens on this as a headless worker. Overall, 115d 20h since this issue was created.

…rsion in slug URLs

Addresses CodeRabbit suggestion: String.replace(/_/g, '-') is functionally
equivalent but replaceAll('_', '-') is more explicit and directly matches
the CodeRabbit suggestion for clarity.
@github-actions
Copy link
Copy Markdown

🔨 Build Complete - Ready for Testing!

📦 Download Build Artifact (Recommended)

Download the zip build, upload to WordPress and test:

🌐 Test in WordPress Playground (Very Experimental)

Click the link below to instantly test this PR in your browser - no installation needed!
Playground support for multisite is very limitied, hopefully it will get better in the future.

🚀 Launch in Playground

Login credentials: admin / password

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
assets/js/command-palette.js (1)

15-19: Consider removing debug console statements before final merge.

Multiple console.log calls throughout the file (lines 15, 19, 32, 82, 88, 114, 150, 174, 195) will clutter browser consoles in production. Since this is WIP, these can be cleaned up before the final merge.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@assets/js/command-palette.js` around lines 15 - 19, Remove the debug
console.log statements that print messages like '[Ultimate Multisite] Command
palette not available - wp.commands or wp.element missing' and '[Ultimate
Multisite] Command palette API detected, initializing...' from
assets/js/command-palette.js; either delete them or wrap them behind a DEBUG
flag/constant (e.g., DEBUG || process.env.NODE_ENV !== 'production') so they
don’t run in production, and ensure all other console.log calls in this file
(the remaining debug messages) are similarly removed or guarded before merging.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@assets/js/command-palette.js`:
- Around line 15-19: Remove the debug console.log statements that print messages
like '[Ultimate Multisite] Command palette not available - wp.commands or
wp.element missing' and '[Ultimate Multisite] Command palette API detected,
initializing...' from assets/js/command-palette.js; either delete them or wrap
them behind a DEBUG flag/constant (e.g., DEBUG || process.env.NODE_ENV !==
'production') so they don’t run in production, and ensure all other console.log
calls in this file (the remaining debug messages) are similarly removed or
guarded before merging.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4241ba68-673e-40bd-914a-b26b5041954c

📥 Commits

Reviewing files that changed from the base of the PR and between 4e0ed99 and 14ca5a1.

📒 Files selected for processing (1)
  • assets/js/command-palette.js

@superdav42 superdav42 merged commit c687d32 into main Apr 1, 2026
11 checks passed
@superdav42
Copy link
Copy Markdown
Collaborator Author

Completed via PR #285, merged to main.

Merged by deterministic merge pass (pulse-wrapper.sh). No worker summary was available — the worker either crashed before writing one or this PR predates the merge summary convention.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant