Honor provider order before first-wins registration, align built-in plugin routers with the same conflict policy, and remove datasource fallback to an unrelated dialect.
Make standard configuration keys authoritative by presence and enable AI resource import unless explicitly disabled. Update bilingual plugin specs and tests accordingly.
Assisted-by: Claude Code
* Remove reflective EnvUtil access from visibility plugin
Assisted-by: Claude Code
* Use first-wins plugin registration and definition normalization
Assisted-by: Claude Code
* feat(plugin): implement SPI-based plugin discovery and management API
Refactor plugin discovery to use SPI pattern and add REST API for plugin control:
SPI-based Discovery:
- Replace hard-coded plugin discovery with PluginProvider SPI pattern
- Add comprehensive tests for UnifiedPluginManager and PluginStatePersistence
- Enable automatic plugin registration for better extensibility
Management API:
- Add PluginControllerV3 with 5 endpoints (list, detail, status, config, availability)
- Create PluginInfoVO and PluginDetailVO for API responses
- Create PluginStatusForm and PluginConfigForm for API requests
- Integrate plugin state checking into all plugin managers
- Add getAllPlugins() methods to expose plugin registries
- Fix core module dependency name for custom-environment-plugin
* fix: UT failed
* fix: UT failed
* refactor(plugin): extract PluginStatePersistence to interface-based design
* fix(plugin): remove auth plugin from critical list to allow custom auth
* feat(plugin): implement config-driven default status for exclusive plugins