5 Commits

  • [codex] Use expect in integration tests (#28441)
    The workspace denies `clippy::expect_used` in production. Although
    `clippy.toml` allows `expect` in tests, Bazel Clippy compiles
    integration-test helper code in a way that does not receive that
    exemption, which encouraged verbose `unwrap_or_else(... panic!(...))`
    and equivalent `match`/`let else` forms.
    
    This allows `clippy::expect_used` once at each integration-test crate
    root (including aggregated suites and test-support libraries), then
    replaces manual panic-based Result and Option unwraps with
    `expect`/`expect_err`. Standalone `tests/*.rs` files remain their own
    crate roots. Intentional assertion and unexpected-variant panics remain
    unchanged, and the production `expect_used = "deny"` lint remains in
    place.
    
    The cleanup is mechanical and net-negative in line count.
  • [codex] Add second-based OTEL duration histograms (#27058)
    ## Why
    
    Exec-server request and connection latencies need fractional-second
    histograms. The existing duration API records integer milliseconds and
    uses millisecond-scale buckets.
    
    ## What changed
    
    - Adds a described duration API that records `Duration` values as
    fractional seconds.
    - Uses second-scale explicit histogram boundaries.
    - Caches duration histograms by name, unit, and description, matching
    the existing instrument caching model.
    - Covers exact boundaries, representative bucket placement, fractional
    sums, and exported metadata.
    
    This PR only adds the duration primitive. It does not add exec-server
    adoption.
    
    ## Stack
    
    1. #26091: counter descriptions
    2. #27057: gauge instruments
    3. **#27058: second-based duration histograms**
    4. #25019: initialize exec-server OpenTelemetry at startup
    
    Related independent coverage: #27059 tests OTLP HTTP log and trace event
    export.
    
    ## Validation
    
    - `just test -p codex-otel`
  • [codex] reduce module visibility (#16978)
    ## Summary
    - reduce public module visibility across Rust crates, preferring private
    or crate-private modules with explicit crate-root public exports
    - update external call sites and tests to use the intended public crate
    APIs instead of reaching through module trees
    - add the module visibility guideline to AGENTS.md
    
    ## Validation
    - `cargo check --workspace --all-targets --message-format=short` passed
    before the final fix/format pass
    - `just fix` completed successfully
    - `just fmt` completed successfully
    - `git diff --check` passed
  • feat: backfill timing metric (#10218)
    1. Add a metric to measure the backfill time
    2. Add a unit to the timing histogram
  • feat: metrics capabilities (#8318)
    Add metrics capabilities to Codex. The `README.md` is up to date.
    
    This will not be merged with the metrics before this PR of course:
    https://github.com/openai/codex/pull/8350