fix(codex): redact System Account menu labels - #3702
Conversation
Apply the existing private account-label policy to System Account submenu titles while preserving raw names when privacy is off and retaining promotion actions and visibility. Extract the bounded privacy repair from #3550. Co-authored-by: Chandler Anderson <chanderson90@proton.me>
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. Reviewed September 16, 2026, 10:33 PM ET / September 17, 2026, 02:33 UTC (Revision 2). ClawSweeper reviewWhat this changesThe PR applies existing private account labels to the Codex System Account submenu and adds regression tests, native screenshot support, and documentation. Merge readiness✅ Ready for maintainer review This remains a useful, focused privacy repair: current main and v0.60.4 still expose submenu emails. The earlier merge-conflict blocker is resolved, and the reviewed patch has no actionable correctness findings. Priority: P2 Review scores
Verification
How this fits togetherCodexBar builds its System Account submenu from visible Codex accounts and the user's privacy preference. Menu titles identify accounts, while separate stored account IDs route promotion actions. flowchart LR
A[Visible Codex accounts] --> C[System Account menu builder]
B[Hide Personal Info setting] --> C
C --> D[Existing private label rules]
C --> E[Original display names]
D --> F[Native submenu]
E --> F
C --> G[Unchanged promotion targets]
Before mergeNone. Agent review detailsSecurityNone. Review metrics
Technical reviewBest possible solution: Use the shared privacy-label policy for submenu titles while preserving existing display names when privacy is off and keeping promotion behavior unchanged. Do we have a high-confidence way to reproduce the issue? Yes: current main renders raw account display names in this submenu even when Hide Personal Info is enabled; supplied native before/after captures corroborate that path. No reproduction was executed during this read-only review. Is this the best way to solve the issue? Yes: reusing the existing redaction and stable-numbering helper is the narrowest repair, with focused tests preserving the submenu's original action and visibility contracts. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against b88c78718da1. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (1 earlier review cycle)
|
|
The existing System Account submenu now honors Hide Personal Info on main through #3702, merged as 141ecf6. It uses stable private account labels while keeping promotion targets and menu state intact; privacy off retains the original display names. Validation: Thanks @zenibako. This repairs the existing submenu's privacy omission; the broader account-switching redesign in #3550 remains open. |


The Codex System Account submenu displayed full email addresses even with Hide Personal Info enabled. Its title builder used raw account names while the neighboring account switcher already applied privacy labels.
Use the existing stable account-number and workspace-label rules for this submenu when privacy is on. When privacy is off, preserve the original display names exactly, including Personal and workspace discriminators. The value-only menu builder preserves item order, checked state, promotion targets, blocking, and submenu visibility.
Validation: the regression reproduced three failed assertions before the fix.
make test-fast FILTER='CodexSystemAccountPrivacy|CodexAccountSwitcherRedaction|ProviderArchitectureGatekeeper'passed 56 tests. Signed native before/after captures use the production item builder with synthetic accounts; they demonstrate the email leak and the corrected menu. No saved settings, credentials, provider calls, or account promotion actions were used.make checkpassed with zero violations; final independent P2 review is clean. Full macOS/Linux CI is the landing gate.This extracts the privacy repair from #3550; the broader switching redesign remains open. Thanks @zenibako.