Skip to content

refactor: remove 8 lightweight feature gates, make always-on (M26)#438

Merged
bug-ops merged 1 commit intomainfrom
feat/m26/simplify-feature-gates
Feb 17, 2026
Merged

refactor: remove 8 lightweight feature gates, make always-on (M26)#438
bug-ops merged 1 commit intomainfrom
feat/m26/simplify-feature-gates

Conversation

@bug-ops
Copy link
Copy Markdown
Owner

@bug-ops bug-ops commented Feb 17, 2026

Summary

  • Remove feature gates for openai, compatible, orchestrator, router, self-learning, qdrant, vault-age, mcp — make these always-on
  • Collapse 3-way tool_executor construction in main.rs into a single block
  • Remove duplicate ToolExecutorBundleNoMcp and build_tool_executor impl from bootstrap.rs
  • Clean up ~90 cfg annotations across 5 crates (zeph-llm, zeph-skills, zeph-mcp, zeph-core, root)
  • Update deny.toml to remove reference to deleted feature
  • Remove dead #[cfg(feature = "self-learning")] from test module

22 files changed, 73 insertions(+), 346 deletions(-)

Default features reduced to []. Remaining gated: tui, candle, metal, cuda, discord, slack, a2a, index, gateway, daemon, scheduler, otel, mock.

Test plan

  • cargo clippy --workspace -- -D warnings
  • cargo clippy --workspace --features tui -- -D warnings
  • cargo nextest run --workspace --lib --bins (1483 passed)
  • Security audit: no new attack surface (MCP is client-only, vault-age runtime-gated)
  • Performance: +3.1 MB binary (+12%), +11 crates, acceptable tradeoff

Closes #436

@github-actions github-actions bot added llm zeph-llm crate (Ollama, Claude) skills zeph-skills crate rust Rust code changes core zeph-core crate tests Test-related changes dependencies Dependency updates refactor Code refactoring without functional changes size/L Large PR (201-500 lines) labels Feb 17, 2026
Remove feature gates for openai, compatible, orchestrator, router,
self-learning, qdrant, vault-age, and mcp. These features added
conditional compilation complexity without significant dependency
savings — qdrant-client was already unconditional via zeph-memory,
rmcp is lightweight, and the rest were code-only modules.

Collapse 3-way tool_executor construction in main.rs into a single
block. Remove duplicate ToolExecutorBundleNoMcp and build_tool_executor
impl from bootstrap.rs. Clean up ~90 cfg annotations across 5 crates.

default features reduced to [] (empty). Remaining gated features:
tui, candle, metal, cuda, discord, slack, a2a, index, gateway,
daemon, scheduler, otel, mock.

22 files changed, -346/+73 lines. All 1483 tests pass.

Closes #436
@bug-ops bug-ops force-pushed the feat/m26/simplify-feature-gates branch from 218e4e2 to 34158a3 Compare February 17, 2026 13:51
@bug-ops bug-ops enabled auto-merge (squash) February 17, 2026 13:54
@bug-ops bug-ops merged commit 70beaab into main Feb 17, 2026
18 checks passed
@bug-ops bug-ops deleted the feat/m26/simplify-feature-gates branch February 17, 2026 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core zeph-core crate dependencies Dependency updates llm zeph-llm crate (Ollama, Claude) refactor Code refactoring without functional changes rust Rust code changes size/L Large PR (201-500 lines) skills zeph-skills crate tests Test-related changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

refactor: simplify feature gates, make lightweight features always-on

1 participant