Files
codex/codex-rs/core/src/config/metrics.rs
T
Ahmed Ibrahim f5960fcc22 Reduce dependency coupling in shared configuration crates (#47713)
## What changed

- Move `Provider` and `RetryConfig` into `codex-client`, retaining re-exports from `codex-api`, and switch `codex-model-provider-info` to depend on `codex-client`.
- Move feature-state metric emission into `codex-core`, preserving its behavior while removing the `codex-features` dependency on `codex-otel`.
- Explicitly enable TLS features for `tonic` in `codex-config` and `reqwest` in `codex-http-client`.
- Enable `png`'s `zlib-rs` feature directly in `codex-utils-image` to keep encoded PNG bytes stable when WebSocket dependencies are absent.

GitOrigin-RevId: 91fd63ab01b55d516b3e80e3644d06af8d5a01f6
2026-09-24 01:50:36 +00:00

27 lines
840 B
Rust

//! Metrics derived from loaded configuration at session start.
use super::Config;
use codex_features::FEATURES;
use codex_features::Stage;
use codex_otel::SessionTelemetry;
pub(crate) fn emit_session_start_metrics(config: &Config, telemetry: &SessionTelemetry) {
for feature in FEATURES {
if matches!(feature.stage, Stage::Removed) {
continue;
}
if config.features.enabled(feature.id) != feature.default_enabled {
telemetry.counter(
"codex.feature.state",
/*inc*/ 1,
&[
("feature", feature.key),
("value", &config.features.enabled(feature.id).to_string()),
],
);
}
}
#[cfg(windows)]
crate::windows_system_config::emit_namespace_squatting_probe();
}