feat(cliproxy): support duplicate-email codex accounts

- keep Codex team and personal auth files as separate identities

- resolve quota and live monitor stats by token file-backed account id

- surface duplicate-aware account labels across the dashboard and variant UI
This commit is contained in:
Tam Nhu Tran
2026-03-30 15:30:11 -04:00
parent 43ea5554e6
commit c73f33872a
23 changed files with 781 additions and 143 deletions
@@ -4,6 +4,7 @@
import { Button } from '@/components/ui/button';
import { ChevronRight, ArrowLeft, User, ExternalLink } from 'lucide-react';
import { formatAccountDisplayName } from '@/lib/account-identity';
import { cn } from '@/lib/utils';
import { PRIVACY_BLUR_CLASS } from '@/contexts/privacy-context';
import type { AccountStepProps } from '../types';
@@ -37,7 +38,7 @@ export function AccountStep({
</div>
<div>
<div className={cn('font-medium', privacyMode && PRIVACY_BLUR_CLASS)}>
{acc.email || acc.id}
{formatAccountDisplayName(acc.id, acc.email)}
</div>
{acc.isDefault && (
<div className="text-xs text-muted-foreground">Default account</div>
@@ -6,6 +6,7 @@ import { useState } from 'react';
import { Button } from '@/components/ui/button';
import { Input } from '@/components/ui/input';
import { Label } from '@/components/ui/label';
import { formatAccountDisplayName } from '@/lib/account-identity';
import {
Select,
SelectContent,
@@ -63,7 +64,7 @@ export function VariantStep({
<span>
{t('setupVariant.using')}{' '}
<span className={cn(privacyMode && PRIVACY_BLUR_CLASS)}>
{selectedAccount.email || selectedAccount.id}
{formatAccountDisplayName(selectedAccount.id, selectedAccount.email)}
</span>
</span>
</div>