Skip to content

[codex] Enforce managed OTEL configuration - #28412

Closed
abhinav-oai wants to merge 2 commits into
abhinav/requirements-auth-bootstrapfrom
abhinav/requirements-otel
Closed

abhinav-oai wants to merge 2 commits into
abhinav/requirements-auth-bootstrapfrom
abhinav/requirements-otel

Conversation

@abhinav-oai

@abhinav-oai abhinav-oai commented Jun 15, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds managed otel support to requirements.toml, including composition across requirement sources and enforcement over ordinary config.

OTEL values use different composition rules depending on whether they are atomic or keyed.

Why

Treating OTEL as either one scalar or one recursively merged object is unsafe. Scalars can be independent, exporters contain coupled endpoint/protocol/header/TLS settings, and metadata maps should compose without discarding unrelated entries.

This PR keeps layer composition, runtime enforcement, and telemetry validation in one reviewable contract.

Semantics

  • log_user_prompt and environment are independent exact values.
  • exporter, trace_exporter, and metrics_exporter are each atomic:
    • the highest-priority specified exporter wins as a complete value;
    • endpoint, protocol, headers, and TLS are never mixed across layers;
    • a required exporter replaces the complete configured exporter.
  • span_attributes composes by key; required values replace matching configured keys while unrelated keys remain.
  • tracestate composes by member and field key.
  • Required tracestate fields win; configured fields are retained only if the complete result remains W3C-valid.
  • Invalid required trace metadata fails startup.
  • Required exporter header names and values are validated during requirements application; errors identify the invalid header without exposing its value.
  • Invalid configured metadata is rejected with a startup warning rather than erasing required metadata.
  • A required exporter that cannot be constructed is fatal in app-server, exec, and TUI startup; optional configured exporters remain best-effort.
  • Metrics export remains subject to the existing analytics.enabled gate.
  • Valid conflicts produce a source-aware structured warning.

Stack

PRs: #28411 → #28409 → #28410 → #28412 → #28414 → #28413

Position PR Branch
1 Keyed shell filters abhinav/requirements-shell-rules
2 Exact managed values abhinav/requirements-exact-values
3 Managed auth/bootstrap abhinav/requirements-auth-bootstrap
4 Managed OTEL — this PR abhinav/requirements-otel
5 Managed shell policy abhinav/requirements-shell-policy
6 App-server API/schemas abhinav/requirements-app-server-api

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Closing this pull request because it has had no updates for more than 14 days. If you plan to continue working on it, feel free to reopen or open a new PR.

@github-actions github-actions Bot closed this Jul 1, 2026
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.

1 participant