server: dispatch providers through a mount registry
The orchestrator held nine Option<Arc<ConcreteClient>> fields and repeated the same if-owns-this-path chain across eight ProviderClient methods. ProviderClient is dyn-compatible (init carries Self: Sized), so mounts are now Arc<dyn ProviderClient> in one Vec<Mount>, and each method is a single owner lookup. Behaviour is unchanged: same owner boundaries (/fsx is still not /fs), same MalformedPath for lookups and NotSupported for mutations, same root ordering (crabidy first, orphans last, rest alphabetical) now done once at build time, same annotate_captured on get_lib_node. The five config-file providers that only differ in their file and root share one mount_from_config helper. This is the groundwork for putting each provider behind a build feature (architecture/build-features.md): a provider is now named in exactly one place. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6f3b60254e
commit
1b838578e2