30 days free. No credit card. Full access from the moment you connect your site.

Start free trial

v0.9.3 — missing-mcp-manager notice + Quick Connect wizard + verified connector setup panels

Three changes ship in this release: activation stops hard-failing when AcrossAI MCP Manager is missing, a full-screen Quick Connect wizard offers to install the sibling in one click, and every connector card gets a verified, per-vendor "How to connect" onboarding panel.

Missing-mcp-manager no longer blocks activation

Activating AcrossAI Pro without acrossai-mcp-manager present used to fail two ways — a Requires Plugins header refused activation at the plugin list, and a wp_die() in includes/Activator.php deactivated the plugin with a plain "install it first" message. Both are gone. Activation now succeeds cleanly whether or not the sibling is present; the existing class_exists guards on premium-feature registration already no-op when it isn't.

In place of the dead-end, a persistent, non-dismissible red admin notice renders on every admin screen (site + network admin under multisite) when the Freemius license is active and mcp-manager is missing. The CTA branches on install state and current-user capability:

  • Install and activate AcrossAI MCP Manager — WordPress.org install URL when uninstalled
  • Activate AcrossAI MCP Managerplugins.php?action=activate when installed-but-inactive
  • Text-only fallback (no button) for users without install_plugins / activate_plugins

Gated on acrossai_pro()->can_use_premium_code() — so the notice never competes with the Freemius opt-in screen during onboarding.

New full-screen Quick Connect wizard

admin.php?page=acrossai-pro-setup. Plain PHP, hand-authored stylesheet, no React build step, no fork of mcp-manager's Quick Setup shell. Triggers on the first admin page load after license activation.

Delivery is state-based, not event-based. An earlier attempt drove the redirect from a Freemius after_connect transient and was abandoned — the SDK fires that action inconsistently across activation paths (fresh opt-in vs license entry vs premium reactivation), and the transient often got consumed by an intermediate request in the redirect chain that the browser threw away. Instead, admin_init @ 5 evaluates a full guard chain against persistent acrossai_pro_setup_wizard_shown + _dismissed options plus a bounded retry transient. The _shown option is written by the render endpoint, not the redirector — so a failed hand-off self-heals on the next page view instead of burning the permanent one-shot forever.

The wizard header reads Quick Connect to disambiguate from mcp-manager's own Quick Setup wizard. Internal file paths, PHP class names, CSS selectors, and the persistent option keys stay on quick-setup / setup_wizard_* — so installs that had already run the wizard from main before this release don't need an upgrade migration.

Verified "How to connect" panels below every connector card

Every per-connector tab (Claude, ChatGPT, Cursor, Gemini, Grok) now leads its card body with a purpose-built onboarding panel — visible before the operator clicks Generate credentials, not a JS-injected result-area afterthought. Coverage is per vendor and matches each vendor's current shape today, not the same four "Add custom connector" bullets repeated five times:

  • Claude — individual Pro/Max flow (Customize → Connectors → + Add custom connector), Team/Enterprise flow with an italic callout that regular members won't see the Add option (only Owners can add), and Claude Code CLI (claude mcp add --transport http).
  • ChatGPT — the section renamed from Connectors to Plugins mid-2026, Developer Mode prerequisite under Settings → Security and login, workspace-admin gate for Business / Enterprise / Edu called out explicitly.
  • Cursor — paid-plan gate stated up front (Hobby doesn't have MCP), three surfaces (editor Settings → Features → MCP, cursor.com/agents Cloud Agents, and the .cursor/mcp.json config) with the correct url-only schema — no fabricated type field.
  • Gemini — consumer gemini.google.com explicitly called out as not supporting custom MCP (Spark connectors are partnership-only). CLI section uses the actual httpUrl field name, not url. Two Enterprise flows split: Business Edition via business.gemini.google and Standard / Plus / Frontline via Google Cloud Console → Data stores → Custom MCP Server. StreamableHTTP-only noted, post-create Enable Actions step called out.
  • Grok — individual grok.com/connectors flow (works on the free tier where the feature is currently enabled) and the team console.x.ai admin flow, both with the italic callout for the members-can't-add semantics.

Every panel ends with a docs-link footnote to acrossai.co/<vendor>-connectors/ — an escape hatch for when a vendor's UI labels drift again.

Under the hood, a new AbstractConnectorProfile::print_setup_styles() static helper prints the scoped stylesheet once per request and carries a full-width max-width: none !important override for every .acrossai-mcp-ai-connectors__panel--{slug} selector. The panels now span the full content area to match the Connections tab layout, past the 720px cap the base bundle applies for narrow tabs.

Sources verified against 2026 official docs: help.openai.com, support.claude.com, cursor.com/docs, support.google.com, docs.x.ai, and the google-gemini/gemini-cli GitHub docs.

Unit tests + CI restored

Closes the 0.9.2 follow-up on issue #48. The 0.9.2 changelog explicitly flagged that the test suite never ran — no phpunit.xml, no CI job, ClaudeConnectorProfileTest had rotted. This release lands .github/workflows/unit-tests.yml and a first regression suite at tests/Unit/QuickSetup/ActivationRedirectTest.php covering every guard on the wizard redirect: AJAX / cron / REST / XML-RPC / autosave short-circuits, GET-only + core non-viewable admin endpoint skips, one-shot idempotency, retry bound.

The workflow runs on PHP 8.4 for the dev toolchain (phpunit ^13.2@dev transitively requires 8.4); the plugin-check job stays on the 8.1 production floor.

⚠️ Operator note — rebuild vendor/ when deploying from source

This release adds new class files under admin/Partials/QuickSetup/ and a new method on AbstractConnectorProfile. The Jetpack Autoloader resolves this plugin's classes from a static classmap generated at composer dump-autoload time — there is no PSR-4 fallback map (per the 0.9.2 note). A source checkout whose vendor/ predates this release will fatal:

PHP Fatal error:  Uncaught Error: Class "AcrossAI_Pro\Admin\Partials\QuickSetup\ActivationRedirect"
not found in .../includes/Main.php:...

Run composer install --no-dev -o (or composer dump-autoload --no-dev -o) after updating.

Installs updating through Freemius are unaffected — the release pipeline regenerates the classmap before packaging.

Known gaps

  • The end-to-end Install & Continue flow on the Quick Connect wizard has not been exercised against a fresh WordPress install with acrossai-mcp-manager absent; the button link is verified, the wp.org handshake itself is core's flow, but the wizard-side dismiss + option-write have only been unit-tested, not clicked through in a browser.
  • Vendor UI labels drift over time. The "How to connect" panels are point-in-time snapshots against 2026 docs; a lightweight quarterly re-verification job (WebFetch each vendor's help URL and diff against the profile strings) is a future follow-up.

Full changelog: v0.9.2…v0.9.3 · Ships #50, #51, #52, #53.


Keep reading