Skip to content

feat(cli): Add feature flags for minimal Nori build (default=minimal)#96

Closed
CSRessel wants to merge 2 commits into
devfrom
claude/feature-flags-minimal-default-f2
Closed

feat(cli): Add feature flags for minimal Nori build (default=minimal)#96
CSRessel wants to merge 2 commits into
devfrom
claude/feature-flags-minimal-default-f2

Conversation

@CSRessel
Copy link
Copy Markdown
Collaborator

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:

  • TUI & CLI default to minimal features (default = [])
  • Created feedback_compat.rs for stub implementations when sentry disabled
  • Feature-gated OpenAI-specific tests with #[cfg(feature = "openai-branding")]
  • Added Nori-specific update system (nori/updates.rs, nori/update_prompt.rs)

Feature Flags

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

Test plan

  • cargo check -p codex-tui - compiles with minimal (default) features
  • cargo check -p codex-tui --features full - compiles with full features
  • cargo test -p codex-tui - 482 tests pass with minimal features
  • cargo test -p codex-tui --features full - 510 tests pass with full features
  • Snapshot tests for branding-specific UI are feature-gated appropriately

🤖 Generated with Claude Code

claude and others added 2 commits December 9, 2025 23:24
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>
@CSRessel CSRessel changed the title feat(tui): Add feature flags for minimal Nori build (default=minimal) feat(cli): Add feature flags for minimal Nori build (default=minimal) Dec 10, 2025
@CSRessel
Copy link
Copy Markdown
Collaborator Author

closing in favor of #93

@CSRessel CSRessel closed this Dec 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants