From 2885a78ae230eacaa610ff40cc4280e6c52f2a81 Mon Sep 17 00:00:00 2001 From: Tre Bu Chet Date: Sat, 14 Feb 2026 15:07:04 -0500 Subject: [PATCH] Refactor feature flags into semantic groups Split monolithic "extras" feature into semantic feature flags: - tui: TUI dashboard mode with animations and demos - workflows: Workflow automation and parallel execution - resilience: Self-healing and graceful degradation - execution-modes: Execution control (dry-run, confirm, yolo) - cache: Caching layer for responses - log-analysis: Log analysis and diagnostics - speculative: Speculative execution - tokens: Token counting and management The "extras" feature remains as a convenience meta-feature that enables all optional modules for backward compatibility. This makes it easier for users to enable only the features they need, reducing compile times and binary size when not using all modules. Co-Authored-By: Claude Opus 4.5 --- Cargo.toml | 23 +++++++++++++++++++++-- src/lib.rs | 26 +++++++++++++------------- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f484f09..6b96f4a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -63,8 +63,27 @@ nix = { version = "0.30", features = ["signal"] } [features] default = [] integration = [] # Enable with: cargo test --features integration -# Orphan/experimental modules - not used in core functionality -extras = [] + +# Semantic feature flags (replacing monolithic "extras") +# TUI dashboard mode with animations and demos +tui = [] +# Workflow automation and parallel execution +workflows = [] +# Self-healing and graceful degradation +resilience = [] +# Execution control modes (dry-run, confirm, yolo) +execution-modes = [] +# Caching layer for responses +cache = [] +# Log analysis and diagnostics +log-analysis = [] +# Speculative execution +speculative = [] +# Token counting and management +tokens = [] + +# Convenience feature that enables all optional modules +extras = ["tui", "workflows", "resilience", "execution-modes", "cache", "log-analysis", "speculative", "tokens"] [dev-dependencies] tokio-test = "0.4" diff --git a/src/lib.rs b/src/lib.rs index 1dbdb47..ea67a65 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -29,7 +29,7 @@ pub mod api_testing; pub mod autonomy; pub mod bm25; pub mod browser_automation; -#[cfg(feature = "extras")] +#[cfg(feature = "cache")] pub mod cache; pub mod carbon_tracker; pub mod checkpoint; @@ -41,19 +41,19 @@ pub mod cognitive; pub mod cognitive_load; pub mod communication; pub mod config; -#[cfg(feature = "extras")] +#[cfg(feature = "execution-modes")] pub mod confirm; pub mod container; pub mod contract_testing; pub mod database; pub mod database_tools; -#[cfg(feature = "extras")] +#[cfg(feature = "resilience")] pub mod degradation; -#[cfg(feature = "extras")] +#[cfg(feature = "tui")] pub mod demo; pub mod distributed; pub mod doc_generator; -#[cfg(feature = "extras")] +#[cfg(feature = "execution-modes")] pub mod dry_run; pub mod dyslexia_friendly; pub mod edit_history; @@ -71,7 +71,7 @@ pub mod kubernetes; pub mod learning; pub mod literate; pub mod local_first; -#[cfg(feature = "extras")] +#[cfg(feature = "log-analysis")] pub mod log_analysis; pub mod mcp; pub mod memory; @@ -81,7 +81,7 @@ pub mod monorepo; pub mod multiagent; pub mod observability; pub mod output; -#[cfg(feature = "extras")] +#[cfg(feature = "workflows")] pub mod parallel; pub mod planning; pub mod process_manager; @@ -92,12 +92,12 @@ pub mod safety; pub mod sandbox; pub mod screen_reader; pub mod security_scanner; -#[cfg(feature = "extras")] +#[cfg(feature = "resilience")] pub mod self_healing; pub mod self_improvement; pub mod session_recording; pub mod shell_hooks; -#[cfg(feature = "extras")] +#[cfg(feature = "speculative")] pub mod speculative; pub mod streaming; pub mod swarm; @@ -107,11 +107,11 @@ pub mod telemetry; pub mod test_dashboard; pub mod threat_modeling; pub mod time_travel; -#[cfg(feature = "extras")] +#[cfg(feature = "tokens")] pub mod tokens; pub mod tool_parser; pub mod tools; -#[cfg(feature = "extras")] +#[cfg(feature = "tui")] pub mod tui; pub mod typed_config; pub mod ui; @@ -119,8 +119,8 @@ pub mod vector_store; pub mod verification; pub mod voice_interface; pub mod wellness; -#[cfg(feature = "extras")] +#[cfg(feature = "workflows")] pub mod workflow_dsl; pub mod workflows; -#[cfg(feature = "extras")] +#[cfg(feature = "execution-modes")] pub mod yolo;