Commit Graph

1 Commits

  • [codex-analytics] Analytics Capture to File in Debug Builds (#27093)
    ## This PR
    
    The original [combined remote plugin analytics PR
    #26281](https://github.com/openai/codex/pull/26281) mixed reusable
    analytics test infrastructure, two manual smoke workflows, a metadata
    refactor, and the final identity behavior. This PR isolates the generic
    capture mechanism so it can be reviewed and landed before any
    plugin-specific behavior.
    
    - Add a debug-only analytics destination that writes final request
    payloads as JSONL.
    - Suppress HTTP delivery whenever capture mode is selected, including
    after capture write failures.
    - Keep release behavior unchanged even when the capture environment
    variable is present.
    - Keep the mechanism generic; this PR contains no plugin-specific
    behavior.
    
    Set `CODEX_ANALYTICS_EVENTS_CAPTURE_FILE=/path/events.jsonl` when
    running a debug Codex binary to inspect the exact batched payload that
    would otherwise be sent to the analytics endpoint.
    
    ## Testing
    
    - `just test -p codex-analytics` (76 passed)
    - `just test --release -p codex-analytics` (73 passed)
    - CI is green across the required platform matrix.
    
    ## Split Overview
    
    ```text
    main
    ├── #27093  Debug analytics capture                 ← you are here
    │   └── #27099  Non-mutating plugin smoke
    │       └── #27100  Remote install/uninstall smoke
    └── #27102  Plugin telemetry metadata refactor
    
    After #27093, #27099, #27100, and #27102 merge:
    └── Final PR: add remote_plugin_id to plugin analytics
    ```
    
    Review order and dependencies:
    
    1. [#27093 Add debug-only analytics event
    capture](https://github.com/openai/codex/pull/27093) **(this PR, based
    on `main`)**
    2. [#27099 Add a plugin analytics smoke
    workflow](https://github.com/openai/codex/pull/27099) (stacked on
    #27093)
    3. [#27100 Add a remote plugin analytics mutation smoke
    workflow](https://github.com/openai/codex/pull/27100) (stacked on
    #27099)
    4. [#27102 Centralize plugin telemetry metadata
    construction](https://github.com/openai/codex/pull/27102) (independent,
    based on `main`)
    5. Final remote-ID behavior PR (created after PRs 1-4 merge)
    
    The original [#26281](https://github.com/openai/codex/pull/26281)
    remains open as the green aggregate reference until the final PR is
    published.