mirror of
https://github.com/openai/codex.git
synced 2026-11-01 19:33:35 +00:00
We are removing feature-gated shared crates from the `codex-rs` workspace. `codex-common` grouped several unrelated utilities behind `[features]`, which made dependency boundaries harder to reason about and worked against the ongoing effort to eliminate feature flags from workspace crates. Splitting these utilities into dedicated crates under `utils/` aligns this area with existing workspace structure and keeps each dependency explicit at the crate boundary. ## What changed - Removed `codex-rs/common` (`codex-common`) from workspace members and workspace dependencies. - Added six new utility crates under `codex-rs/utils/`: - `codex-utils-cli` - `codex-utils-elapsed` - `codex-utils-sandbox-summary` - `codex-utils-approval-presets` - `codex-utils-oss` - `codex-utils-fuzzy-match` - Migrated the corresponding modules out of `codex-common` into these crates (with tests), and added matching `BUILD.bazel` targets. - Updated direct consumers to use the new crates instead of `codex-common`: - `codex-rs/cli` - `codex-rs/tui` - `codex-rs/exec` - `codex-rs/app-server` - `codex-rs/mcp-server` - `codex-rs/chatgpt` - `codex-rs/cloud-tasks` - Updated workspace lockfile entries to reflect the new dependency graph and removal of `codex-common`.
34 lines
1.1 KiB
Rust
34 lines
1.1 KiB
Rust
use codex_core::WireApi;
|
|
use codex_core::config::Config;
|
|
|
|
use crate::sandbox_summary::summarize_sandbox_policy;
|
|
|
|
/// Build a list of key/value pairs summarizing the effective configuration.
|
|
pub fn create_config_summary_entries(config: &Config, model: &str) -> Vec<(&'static str, String)> {
|
|
let mut entries = vec![
|
|
("workdir", config.cwd.display().to_string()),
|
|
("model", model.to_string()),
|
|
("provider", config.model_provider_id.clone()),
|
|
("approval", config.approval_policy.value().to_string()),
|
|
(
|
|
"sandbox",
|
|
summarize_sandbox_policy(config.sandbox_policy.get()),
|
|
),
|
|
];
|
|
if config.model_provider.wire_api == WireApi::Responses {
|
|
let reasoning_effort = config
|
|
.model_reasoning_effort
|
|
.map(|effort| effort.to_string());
|
|
entries.push((
|
|
"reasoning effort",
|
|
reasoning_effort.unwrap_or_else(|| "none".to_string()),
|
|
));
|
|
entries.push((
|
|
"reasoning summaries",
|
|
config.model_reasoning_summary.to_string(),
|
|
));
|
|
}
|
|
|
|
entries
|
|
}
|