5.6 KiB
Changelog for v1.0.0 - MCP-Only Architecture
Summary
Version 1.0.0 marks the completion of the MCP-only architecture migration, removing all legacy code paths and fully embracing the Model Context Protocol for all LLM interactions and tool executions.
Breaking Changes
1. MCP mode defaults to remote-preferred (legacy retained)
What changed:
- The
[mcp]section inconfig.tomlkeeps amodesetting but now defaults toremote_preferred. - Legacy values such as
"legacy"map to thelocal_onlyruntime and emit a warning instead of failing. - New toggles (
allow_fallback,warn_on_legacy) give administrators explicit control over graceful degradation.
Migration:
[mcp]
mode = "remote_preferred"
allow_fallback = true
warn_on_legacy = true
To opt out of remote MCP servers temporarily:
[mcp]
mode = "local_only" # or "legacy" for backwards compatibility
Code changes:
crates/owlen-core/src/config.rs: ReintroducedMcpModewith compatibility aliases and new settings.crates/owlen-core/src/mcp/factory.rs: Respects the configured mode, including strict remote-only and local-only paths.crates/owlen-cli/src/main.rs: Chooses between remote MCP providers and the direct Ollama provider based on the mode.
2. Updated MCP Client Factory
What changed:
McpClientFactory::create()now enforces the configured mode (remote_only,remote_preferred,local_only, orlegacy).- Helpful configuration errors are surfaced when remote-only mode lacks servers or fallback is disabled.
- CLI users in
local_only/legacymode receive the direct Ollama provider instead of a failing MCP stub.
Before:
match self.config.mcp.mode {
McpMode::Legacy => { /* use local */ },
McpMode::Enabled => { /* use remote or fallback */ },
}
After:
match self.config.mcp.mode {
McpMode::RemoteOnly => start_remote()?,
McpMode::RemotePreferred => try_remote_or_fallback()?,
McpMode::LocalOnly | McpMode::Legacy => use_local(),
McpMode::Disabled => bail!("unsupported"),
}
New Features
Test Infrastructure
Added comprehensive mock implementations for testing:
-
MockProvider (
crates/owlen-core/src/provider.rs)- Located in
provider::test_utilsmodule - Provides a simple provider for unit tests
- Implements all required
Providertrait methods
- Located in
-
MockMcpClient (
crates/owlen-core/src/mcp.rs)- Located in
mcp::test_utilsmodule - Provides a simple MCP client for unit tests
- Returns mock tool descriptors and responses
- Located in
Documentation
-
Migration Guide (
docs/migration-guide.md)- Comprehensive guide for migrating from v0.x to v1.0
- Step-by-step configuration update instructions
- Common issues and troubleshooting
- Rollback procedures if needed
-
Updated Configuration Reference
- Documented the new
remote_preferreddefault and fallback controls - Clarified MCP server configuration with remote-only expectations
- Added examples for local and cloud Ollama usage
- Documented the new
Bug Fixes
- Fixed test compilation errors due to missing mock implementations
- Resolved ambiguous glob re-export warnings (non-critical, test-only)
Internal Changes
Configuration System
McpSettingsgainedmode,allow_fallback, andwarn_on_legacyknobs.McpModeenum restored with explicit aliases for historical values.- Default configuration now prefers remote servers but still works out-of-the-box with local tooling.
MCP Factory
- Simplified factory logic by removing mode branching
- Improved fallback behavior with better error messages
- Test renamed to reflect new behavior:
test_factory_creates_local_client_when_no_servers_configured
Performance
No performance regressions expected. The MCP architecture may actually improve performance by:
- Removing unnecessary mode checks
- Streamlining the client creation process
- Better error handling reduces retry overhead
Compatibility
Backwards Compatibility
- Existing
mode = "legacy"configs keep working (now mapped tolocal_only) but trigger a startup warning. - Users who relied on remote-only behaviour should set
mode = "remote_only"explicitly.
Forward Compatibility
The McpSettings struct now provides a stable surface to grow additional MCP-specific options such as:
- Connection pooling strategies
- Remote health-check cadence
- Adaptive retry controls
Testing
All tests passing:
test result: ok. 29 passed; 0 failed; 0 ignored
Key test areas:
- Agent ReAct pattern parsing
- MCP client factory creation
- Configuration loading and validation
- Mode-based tool filtering
- Permission and consent handling
Upgrade Instructions
See Migration Guide for detailed instructions.
Quick upgrade:
-
Update your
~/.config/owlen/config.toml:# Remove the 'mode' line from [mcp] section sed -i '/^mode = /d' ~/.config/owlen/config.toml -
Rebuild Owlen:
cargo build --release -
Test with a simple query:
owlen
Known Issues
- Warning about ambiguous glob re-exports - Non-critical, only affects test builds
- First inference may be slow - Ollama loads models on first use (expected behavior)
- Cloud model 404 errors - Ensure model names match Ollama Cloud's naming (remove
-cloudsuffix from model names)
Contributors
This release completes the Phase 10 migration plan documented in .agents/new_phases.md.
Related Issues
- Closes: Legacy mode removal
- Implements: Phase 10 cleanup and production polish
- References: MCP architecture migration phases 1-10