Plugin Registration Resolution Path (2026)
Plugin Registration Resolution Path (2026)
Section titled “Plugin Registration Resolution Path (2026)”This document records the resolution path for the tensor-burn-wgpu to mens-candle-cuda regression in the vox-ml-cli pipeline, providing a template to prevent recurring CI/CD failures during the plugin system migration.
The Problem
Section titled “The Problem”In early 2026, the vox mens train command failed with the following error:
This Vox capability requires the 'gpu' plugin, which is not installed.To install it, run: vox plugin install tensor-burn-wgpuHowever, running the suggested command failed, and the plugin tensor-burn-wgpu did not exist in the catalog (crates/vox-plugin-catalog/catalog.toml).
Root Cause
Section titled “Root Cause”During the Sub-Project 3 (SP3) Plugin System Redesign, ML backend functionality was extracted out of vox-populi into dedicated plugins. The tensor-burn-wgpu plugin was either deprecated or never materialized in favor of mens-candle-cuda as the canonical CUDA/QLoRA backend. The fallback error message in crates/vox-ml-cli/src/commands/mens/populi/dispatch.rs was not updated to reflect this catalog change, leading to a hallucinated resolution path.
Resolution Steps
Section titled “Resolution Steps”- Verify the Canonical Catalog: Always check
crates/vox-plugin-catalog/catalog.tomlto confirm which plugins are actively supported. In this case,mens-candle-cudawas listed as the correct plugin exposing theMlBackendextension point. - Update the Dispatch Guard: The
cfg(not(feature = "gpu"))guard incrates/vox-ml-cli/src/commands/mens/populi/dispatch.rswas updated to suggest installingmens-candle-cuda. - Verify Feature Compilation: The training CLI was verified to compile gracefully and fall back to HuggingFace dispatch or mock when compiled without the
mens-candle-cudanative link dependencies. - Environment Isolation: Native link errors for CUDA (e.g.,
cublasLtEmulationDescInit_internal) when compilingvox-ml-clidirectly with--features gpuindicate that the host environment lacks the correct MSVC/CUDA configuration. The architectural intent is that end users rely on pre-compiled plugin binaries or dynamic loading rather than compiling thegpufeature directly on incompatible hosts.
Future Prevention
Section titled “Future Prevention”- Catalog SSoT Rule: All CLI fallback paths suggesting a plugin installation must be integration-tested against the active
vox-plugin-catalog. - Error Messages: Hardcoded plugin names in
anyhow::bail!statements are a code smell. Future architecture should dynamically read the suggested plugin for a given capability from theVoxPluginRootor extension-point registry.