Plugin Shape Matrix E2E

This walkthrough verifies the Host Metrics example across every supported runtime/UI shape combination.

Verified script:

Generated screenshots:

What Was Verified

  • all six Host Metrics shape variants package successfully

  • each variant installs and enables cleanly

  • each variant renders the same CPU/RAM navbar widget

  • each variant exposes a dedicated plugin settings tab

  • declarative, WebView, and custom-bundle settings surfaces all render in browser

  • custom-bundle variants load a manifest-declared JS component module and render it in-browser

  • declarative variants render a manifest-declared remote component through the host renderer

  • compiled serial/camera hook invokers continue to power the same visible plugin behavior after the runtime refactor

  • bridge variants work through the companion bridge service

  • cleanup leaves the instance back at its previous plugin inventory

Verified Commands

LOG_CHANNEL=stderr CACHE_DRIVER=array php artisan test \
  tests/Unit/Plugins/PluginHookCompilerTest.php \
  tests/Unit/Plugins/PluginManifestValidatorTest.php \
  tests/Feature/Plugins/PluginManagementApiTest.php \
  tests/Unit/Plugins/PluginArchiveServiceTest.php

docker exec wprint3d-core-backend-1 php artisan optimize:clear
docker exec wprint3d-core-web-1 sh -lc 'cd /app && pnpm exec expo export -p web'
python3 scripts/e2e_plugin_shape_matrix.py

# optional when your local proxy uses a non-default port
BASE_URL=https://127.0.0.1:8443 python3 scripts/e2e_plugin_shape_matrix.py

Variant Matrix

1. PHP + Declarative

Example:

Navbar:

PHP declarative navbar

Settings:

PHP declarative settings

2. PHP + WebView

Example:

Navbar:

PHP WebView navbar

Settings:

PHP WebView settings

3. PHP + Custom Bundle

Example:

Navbar:

PHP custom bundle navbar

Settings:

PHP custom bundle settings

4. Bridge + Declarative

Example:

Navbar:

Bridge declarative navbar

Settings:

Bridge declarative settings

5. Bridge + WebView

Example:

Navbar:

Bridge WebView navbar

Settings:

Bridge WebView settings

6. Bridge + Custom Bundle

Example:

Navbar:

Bridge custom bundle navbar

Settings:

Bridge custom bundle settings

Notes

  • WebView and custom-bundle settings surfaces now render on Expo web through a host iframe path, while native platforms still use react-native-webview.

  • The custom-bundle variants now verify the manifest components field by loading components/host-metrics-card.js from plugin assets and checking for the Loaded from JS marker in browser E2E.

  • The declarative variants now verify the cross-platform remote component API through their remote component UI subtitles and remote-component-specific copy.

  • Bridge variants rely on the helper service in examples/plugins/host-metrics-bridge-service.

  • The matrix installs each example one-by-one so the navbar stays readable and parity checks remain attributable to the active variant.