Skip to content

[codex-app-server-test-client & codex-app-server] Plugin Usage Analytics Smoke Test#27099

Merged
jameswt-oai merged 2 commits into
mainfrom
jameswt/plugin-analytics-smoke
Jun 16, 2026
Merged

[codex-app-server-test-client & codex-app-server] Plugin Usage Analytics Smoke Test#27099
jameswt-oai merged 2 commits into
mainfrom
jameswt/plugin-analytics-smoke

Conversation

@jameswt-oai

@jameswt-oai jameswt-oai commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

This PR

The original combined remote plugin analytics PR #26281 mixed reusable analytics test infrastructure, two manual smoke workflows, a metadata refactor, and the final identity behavior. This PR establishes a non-mutating end-to-end plugin smoke workflow before any analytics identity semantics change.

  • Add plugin-analytics-smoke to the existing app-server test client.
  • Exercise plugin disable, enable, and use through production app-server RPC paths.
  • Isolate config writes in a temporary file and use a loopback Responses API server.
  • Capture analytics without sending them to the production analytics backend.
  • Validate the current local plugin_id, names, capability metadata, thread, turn, and model fields.

This is intentionally a baseline smoke workflow. It does not assert remote_plugin_id; the final PR will update it when that field exists. Review this PR as the net diff against #27093.

Testing

  • The test-client target compiles successfully.
  • The combined reference branch exercised the manual smoke against the live remote plugin service.
  • CI is green across the required platform matrix.

Split Overview

main
├── #27093  Debug analytics capture
│   └── #27099  Non-mutating plugin smoke           ← you are here
│       └── #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 (based on main)
  2. #27099 Add a plugin analytics smoke workflow (this PR, stacked on [codex-analytics] Analytics Capture to File in Debug Builds #27093)
  3. #27100 Add a remote plugin analytics mutation smoke workflow (stacked on this PR)
  4. #27102 Centralize plugin telemetry metadata construction (independent, based on main)
  5. Final remote-ID behavior PR (created after PRs 1-4 merge)

The original #26281 remains open as the green aggregate reference until the final PR is published.

@jameswt-oai jameswt-oai force-pushed the jameswt/plugin-analytics-smoke branch from 651d3e2 to 0548d96 Compare June 11, 2026 20:43
@jameswt-oai jameswt-oai changed the title Add a plugin analytics smoke workflow [codex-app-server-test-client & codex-app-server] Add a plugin analytics smoke workflow Jun 11, 2026
@jameswt-oai jameswt-oai changed the title [codex-app-server-test-client & codex-app-server] Add a plugin analytics smoke workflow [codex-app-server-test-client & codex-app-server] Plugin Usage Analytics Smoke Test Jun 11, 2026
jameswt-oai added a commit that referenced this pull request Jun 15, 2026
## This PR

The original [combined remote plugin analytics PR
#26281](#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](#27093) **(this PR, based
on `main`)**
2. [#27099 Add a plugin analytics smoke
workflow](#27099) (stacked on
#27093)
3. [#27100 Add a remote plugin analytics mutation smoke
workflow](#27100) (stacked on
#27099)
4. [#27102 Centralize plugin telemetry metadata
construction](#27102) (independent,
based on `main`)
5. Final remote-ID behavior PR (created after PRs 1-4 merge)

The original [#26281](#26281)
remains open as the green aggregate reference until the final PR is
published.
Base automatically changed from jameswt/analytics-jsonl-capture to main June 15, 2026 23:32
@jameswt-oai jameswt-oai force-pushed the jameswt/plugin-analytics-smoke branch from 0548d96 to 8db6077 Compare June 15, 2026 23:48
@jameswt-oai jameswt-oai marked this pull request as ready for review June 15, 2026 23:48

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8db6077a67

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread codex-rs/app-server-test-client/src/plugin_analytics_smoke.rs
Comment thread codex-rs/app-server-test-client/src/plugin_analytics_smoke.rs
Comment thread codex-rs/app-server-test-client/src/plugin_analytics_smoke.rs Outdated
@jameswt-oai jameswt-oai force-pushed the jameswt/plugin-analytics-smoke branch from 8db6077 to d9262db Compare June 16, 2026 00:17
@jameswt-oai jameswt-oai force-pushed the jameswt/plugin-analytics-smoke branch from d9262db to 7a8f917 Compare June 16, 2026 16:35
@jameswt-oai jameswt-oai merged commit a376781 into main Jun 16, 2026
31 checks passed
@jameswt-oai jameswt-oai deleted the jameswt/plugin-analytics-smoke branch June 16, 2026 17:11
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 16, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants