Vendor API Drift Report - Echo/Twin Maintainer
Generated: 2026-03-23 Status: Critical drift detected Reporter: Echo (Twin Maintainer)
Executive Summary
Mirror verification reveals significant drift between current dependencies and upstream vendor APIs. Four critical integration points require immediate remediation to maintain twin fidelity.
1. CRITICAL: rust-genai v0.4.4 → v0.6.0 (HIGH PRIORITY)
Current State
- Version: v0.4.4-WIP (terraphim fork, branch
merge-upstream-20251103) - Commit: 0f8839ad
- Location:
Cargo.toml[patch.crates-io]
Upstream Changes (Breaking)
v0.5.0 Changes:
-
Dependency Conflict:
reqwestupgraded from 0.12 to 0.13- Workspace currently uses 0.12
- Impact: Version mismatch will cause compilation failures
-
API Breaking:
ChatResponse.contenttype changed- From:
Vec<MessageContent> - To:
MessageContent - Impact: All code using
.contentfield needs migration
- From:
-
API Breaking:
StreamEnd.contenttype changed- To:
Option<MessageContent> - Impact: Streaming response handling
- To:
-
API Breaking:
ChatRequest::append/with_...(vec)functions- Now take iterators instead of Vec
- Impact: Request builder code
-
API Breaking:
ContentPartrestructuringContentPart::Binary(Binary)now required- Binary constructors changed parameter order
- Impact: Multimodal content handling
-
Namespace Strategy: ZAI namespace changes
- Default models now use
zai::prefix - Impact: Model name resolution
- Default models now use
v0.6.0-beta Changes:
-
API Breaking:
ContentPart::CustomPart.model_iden- Now
Optiontype - Impact: Custom content handling
- Now
-
API Breaking:
all_model_names()- Now requires
AuthResolversupport - Impact: Model listing functionality
- Now requires
-
Provider Breaking: Groq namespace requirement
- Must use
groq::_model_nameformat - Impact: Groq provider configuration
- Must use
-
New OpenAI Routing: GPT-5 models
- Routed through OpenAI Responses API
- Impact: Model routing logic
Affected Crates
terraphim_multi_agent- Direct genai dependencyterraphim_service- LLM service layerterraphim_config- Model configuration
Recommended Action
- Create dedicated migration branch
- Upgrade workspace reqwest to 0.13
- Update genai fork to v0.5.3 baseline
- Migrate
ChatResponse.contentaccess patterns - Update streaming handlers for
StreamEndchanges - Add namespace handling for Groq/ZAI models
References
2. CRITICAL: rmcp (MCP SDK) v0.9.1 → v1.2.0 (HIGH PRIORITY)
Current State
- Version: 0.9.1
- Location:
terraphim_mcp_server/Cargo.toml
Upstream Changes (Breaking)
v1.0.0-alpha → v1.0.0:
-
Breaking: Auth token exchange returns extra fields
- Impact: OAuth implementations
-
Breaking:
#[non_exhaustive]added to model types- Impact: Match statements and exhaustive patterns
-
API Change: Streamable HTTP error handling
- Stale session 401 now mapped to status-aware error
- Impact: Error handling logic
v1.1.0:
- New Feature: OAuth 2.0 Client Credentials flow
- Impact: New authentication options available
v1.1.1:
- Fix: Accept logging/setLevel and ping before initialized
- Impact: Protocol initialization
v1.2.0:
-
Fix: Handle ping requests before initialize handshake
- Impact: Connection stability
-
Fix: Allow deserializing notifications without params field
- Impact: Notification handling
-
Deps: jsonwebtoken 9 → 10
- Impact: JWT handling
-
Fix: Non-exhaustive model constructors
- Impact: Type construction
Affected Crates
terraphim_mcp_server- Direct rmcp dependency
Recommended Action
- Upgrade rmcp to v1.2.0
- Review all match statements on MCP types
- Update error handling for new status-aware errors
- Test OAuth flows if implemented
References
3. MODERATE: Firecracker API v1.11.0 (MEDIUM PRIORITY)
Current State
- Integration via
terraphim_firecrackercrate - Local implementation of Firecracker API client
Upstream Changes
v1.11.0 (2026-03-18):
-
Breaking: Snapshot format v5.0.0
- Removed fields:
max_connections,max_pending_resets - Impact: Existing snapshots incompatible - must regenerate
- Removed fields:
-
Change: seccompiler implementation
- Migrated to
libseccomp - Impact: BPF code generation
- Migrated to
-
Added: AMD Genoa support
-
Fixed: ARM physical counter behavior
-
Fixed: PATCH /machine-config field requirements
Affected Crates
terraphim_firecracker- Firecracker API clientterraphim_github_runner- VM management
Recommended Action
- Review snapshot usage in CI/CD
- Update API client for snapshot format v5.0
- Plan snapshot regeneration
- Test VM creation with new seccompiler
References
4. LOW: Additional Dependencies (MONITORING)
1Password CLI
- Status: External CLI dependency
- Risk: Low - stable API
- Action: Monitor for breaking changes
Atomic Data Server
- Status: API client in
terraphim_atomic_client - Risk: Low - local server
- Action: Monitor Atomic Data specification
JMAP (haystack_jmap)
- Status: Email protocol client
- Risk: Low - standard protocol
- Action: Monitor RFC updates
Atlassian (haystack_atlassian)
- Status: Currently excluded from workspace
- Risk: N/A
- Action: Review before re-enabling
Remediation Priority Matrix
| Vendor | Severity | Effort | Priority | Issue # | |--------|----------|--------|----------|---------| | rust-genai | High | High | P0 | TBD | | rmcp | High | Medium | P0 | TBD | | Firecracker | Medium | Medium | P1 | TBD | | Others | Low | Low | P2 | TBD |
Dependencies Between Issues
-
rust-genai blocks rmcp upgrade
- Both require coordinated reqwest version
-
Firecracker is independent
- Can be upgraded separately
Verification Checklist
- [ ] rust-genai fork updated to v0.5.3
- [ ] Workspace reqwest upgraded to 0.13
- [ ] ChatResponse.content migration complete
- [ ] Streaming handlers updated
- [ ] rmcp upgraded to v1.2.0
- [ ] MCP error handling updated
- [ ] Firecracker API client updated for v1.11
- [ ] Snapshot regeneration completed
- [ ] Integration tests pass
- [ ] Documentation updated
Echo's Mirror Assessment
Fidelity Status: DEGRADED
The twin has drifted from source across three critical dimensions:
- LLM abstraction layer (genai) - 2 minor versions behind with breaking changes
- MCP protocol layer (rmcp) - 3 major versions behind
- VM abstraction layer (Firecracker) - 1 major version behind
Recommendation: Immediate synchronization required. Do not deploy to production until P0 items resolved.
Echo, Twin Maintainer "Parallel lines that never diverge"