-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Labels
Description
Problem
Feature gate proliferation causes combinatorial cfg complexity in main.rs (3 separate tool_executor blocks for mcp/tui/neither) and throughout crate code. Default features that add minimal dep weight create unnecessary cfg noise.
Features to Remove (Make Always-On)
Tier 1: Zero-dep code-only flags
| Feature | Rationale |
|---|---|
openai |
Zero new deps, just a code module |
compatible |
Depends on openai, zero extra deps |
self-learning |
Zero deps, one module (evolution) |
orchestrator |
Zero deps, code-only |
router |
Zero deps, code-only |
Tier 2: Already-paid deps or minimal weight
| Feature | Rationale |
|---|---|
qdrant |
qdrant-client already compiled via zeph-memory unconditionally |
vault-age |
age crate is small, secret management should always be available |
mcp |
rmcp is lightweight, eliminates worst cfg complexity in main.rs |
Features to Keep Gated
tui, candle, metal/cuda, discord, slack, a2a, index, gateway, daemon, scheduler, otel, mock
Implementation Phases
- Remove code-only gates from zeph-llm (
openai,compatible,orchestrator,router) - Remove
self-learninggate from zeph-skills - Remove
qdrantgate from zeph-skills and zeph-mcp - Remove
vault-agegate from zeph-core - Make MCP always-on, collapse 3-way tool_executor in main.rs
- Update root Cargo.toml features
- Simplify main.rs (~40 lines removed)
- Clean up zeph-core forwarding features
Phases 1-4 are independent. Phase 5 depends on 3. Phases 6-8 depend on all prior.
Impact
- ~50+ cfg annotations removed across the workspace
- main.rs shrinks by ~40 lines
default = [](everything meaningful is always-on)- Negligible compile time impact
- Breaking change acceptable pre-1.0
References
- Full plan:
.local/plan/feature-gate-simplification.md
Reactions are currently unavailable