feat(cli): Add feature flags for minimal Nori build (default=minimal)#96
Closed
CSRessel wants to merge 2 commits into
Closed
feat(cli): Add feature flags for minimal Nori build (default=minimal)#96CSRessel wants to merge 2 commits into
CSRessel wants to merge 2 commits into
Conversation
Implement Cargo feature flags to enable stripping non-essential modules from release builds. This allows shipping a minimal binary with only CLI + TUI + ACP functionality, removing legacy HTTP provider code. Feature flags added: - codex-cli: full (default), minimal, app-server, mcp-server, exec-mode, cloud-tasks, http-providers, responses-proxy - codex-tui: http-fallback (default), sentry - codex-common: oss-providers (default for ollama/lmstudio) Build commands: - Full build: cargo build -p codex-cli (default) - Minimal ACP-only: cargo build -p codex-cli --no-default-features --features minimal Modules stripped in minimal build: - codex-chatgpt (OAuth login, HTTP client) - codex-login (auth flows) - codex-app-server, codex-mcp-server, codex-exec - codex-cloud-tasks, codex-responses-api-proxy - codex-ollama, codex-lmstudio (OSS providers) - Session resume and conversation forking (requires HTTP)
This commit implements comprehensive feature flagging to support building a minimal Nori CLI that only includes ACP functionality: ## Feature Flags Added ### TUI (`codex-tui`) - `default = []` - Minimal build with Nori branding - `full = ["http-fallback", "sentry", "openai-branding"]` - Full Codex build - `http-fallback` - HTTP API fallback when ACP model not found - `sentry` - Error reporting / feedback collection - `openai-branding` - OpenAI/Codex-specific branding and features ### CLI (`codex-cli`) - `default = []` - Minimal Nori build (ACP-only) - `full = [...]` - Full OpenAI Codex build with all features - Propagates `openai-branding` and `sentry` to TUI ## Changes - Created `feedback_compat.rs` module providing stub implementations for `CodexFeedback` and `CodexLogSnapshot` when sentry is disabled - Feature-gated status tests to only run with `openai-branding` - Feature-gated trust directory snapshot test - Feature-gated model migration prompts and related events - Added Nori-specific update system (`nori/updates.rs`, `nori/update_prompt.rs`) - Feature-gated welcome screen branding ## Testing All tests pass with both minimal features (`cargo test -p codex-tui`) and full features (`cargo test -p codex-tui --features full`). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Collaborator
Author
|
closing in favor of #93 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements comprehensive feature flagging to support building a minimal Nori CLI that only includes ACP functionality. The default build is now the minimal Nori build.
Key Changes:
default = [])feedback_compat.rsfor stub implementations when sentry disabled#[cfg(feature = "openai-branding")]nori/updates.rs,nori/update_prompt.rs)Feature Flags
TUI (
codex-tui):default = []- Minimal build with Nori brandingfull = ["http-fallback", "sentry", "openai-branding"]- Full Codex buildhttp-fallback- HTTP API fallback when ACP model not foundsentry- Error reporting / feedback collectionopenai-branding- OpenAI/Codex-specific branding and featuresCLI (
codex-cli):default = []- Minimal Nori build (ACP-only)full = [...]- Full OpenAI Codex build with all featuresopenai-brandingandsentryto TUITest plan
cargo check -p codex-tui- compiles with minimal (default) featurescargo check -p codex-tui --features full- compiles with full featurescargo test -p codex-tui- 482 tests pass with minimal featurescargo test -p codex-tui --features full- 510 tests pass with full features🤖 Generated with Claude Code