Repository navigation
Stop emitting free-form analytics error subreason #429
Description
Objective
Remove the free-form codex_error_subreason analytics payload copied from invalid-request text so provider responses or user-derived content are not emitted through this telemetry field. Preserve useful structured error categorization without retaining the raw bounded string.
Finish Line
Codex Lab no longer populates or serializes codex_error_subreason; focused analytics tests prove the field is absent while structured error facts and unrelated telemetry remain intact.
Current Status
State: Completed.
Merged: PR #472 at 82ffbe8cae7dc68a400ea5d4f29f7bcd42b18c8f on July 25, 2026.
Result: the free-form analytics error subreason is removed from main; all 9 PR checks passed, and PR #465's upstream candidate already carries the same privacy behavior.
Blocked by: none.
Next action: none; #429 no longer blocks #343.
Scope
- In: analytics fact/event/reducer field removal; fixture and serialization updates; privacy-focused regression coverage; convergence-contract entry in Define Every Code-owned convergence contracts #126.
- Out: unrelated analytics schema redesign, retention policy changes, or wholesale telemetry renaming.
Acceptance Criteria
- Remove the free-form subreason field from analytics fact construction, event serialization, and reducer plumbing.
- Remove the 512-byte invalid-request text copy and its now-unused helper/constant.
- Preserve structured error kind/category reporting.
- Add focused tests proving invalid-request body text is not emitted.
- Verify the fix on current
mainand carry the same contract into Build upstream snapshot integration and canary branch #428's upstream candidate. - Pass PR Remove free-form analytics error subreason #472's repository checks and merge the fix.
Relationships
- Parent: Sync Codex Lab with current openai/codex substrate #230.
- Contract owner: Define Every Code-owned convergence contracts #126.
- Related integration candidate: Build upstream snapshot integration and canary branch #428.
- Blocks: Cut over to converged Codex Lab baseline and primary harness #343 cutover.
- Source evidence: Reconstruct pre-checkpoint semantic ledger through 1bbdb327 #407/Classify pre-checkpoint other codex-rs commits #418 ledger row for
ee6c91d5cfd0e63239c75b41f4a2dc14130d5688and upstream PR [codex-analytics] stop sending codex error subreason openai/codex#27060.
Validation
- Local
cargo test -p codex-analytics: 71 tests passed. - Repository search confirms
codex_error_subreasonhas no remaining runtime emission path. - PR Remove free-form analytics error subreason #472 passed all 9 repository checks, including the exec harness and macOS ARM64 app build.
- PR Integrate current upstream Codex snapshot with Every Code contracts #465's converged upstream candidate contains the same privacy behavior.
- Merged to
mainas82ffbe8cae7dc68a400ea5d4f29f7bcd42b18c8f.
Decisions
- Treat this as a privacy fast-track rather than waiting for the full upstream convergence candidate.
- Preserve structured diagnostics; remove only the free-form text field.
Open Questions
- None currently.
Activity
shiny-code-bot commentedon Jul 25, 2026
Completed by PR #472. All 9 repository checks passed, including the exec harness and macOS ARM64 app build; the merge commit is
82ffbe8cae7dc68a400ea5d4f29f7bcd42b18c8f.