From 0a63029726e19836f99a2d9588fc13a20201f73e Mon Sep 17 00:00:00 2001 From: Wibias <37517432+Wibias@users.noreply.github.com> Date: Tue, 28 Jul 2026 10:07:38 +0200 Subject: [PATCH 1/9] =?UTF-8?q?fix(gui):=20chrome=20polish=20=E2=80=94=20t?= =?UTF-8?q?abs,=20Codex=20Auth=20load,=20steppers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove pointless page-tab scrollbars, reserve Codex Auth/API Keys load space without layout shift, tighten pool strategy spacing, and add custom number steppers plus Grok collapse/expand controls. --- .../AccountPoolStrategyControls.tsx | 75 +++++++++------- gui/src/components/CodexAccountPool.tsx | 7 +- gui/src/components/CodexAutoSwitchSetting.tsx | 20 +++++ .../components/CodexPoolStrategySetting.tsx | 5 +- gui/src/components/NumberStepper.tsx | 43 ++++++++++ .../codex-account-pool-main-card.tsx | 49 +++++++---- gui/src/i18n/de.ts | 5 ++ gui/src/i18n/en.ts | 5 ++ gui/src/i18n/ja.ts | 5 ++ gui/src/i18n/ko.ts | 5 ++ gui/src/i18n/ru.ts | 5 ++ gui/src/i18n/zh.ts | 5 ++ gui/src/pages/ApiKeys.tsx | 4 + gui/src/pages/Grok.tsx | 14 +++ gui/src/pages/api-keys-panels.tsx | 12 ++- gui/src/pages/startup-sections.tsx | 4 +- gui/src/styles.css | 86 +++++++++++++++++-- gui/src/styles/provider-workspace-shell.css | 4 +- 18 files changed, 292 insertions(+), 61 deletions(-) create mode 100644 gui/src/components/NumberStepper.tsx diff --git a/gui/src/components/AccountPoolStrategyControls.tsx b/gui/src/components/AccountPoolStrategyControls.tsx index 57e315abe..271447e86 100644 --- a/gui/src/components/AccountPoolStrategyControls.tsx +++ b/gui/src/components/AccountPoolStrategyControls.tsx @@ -3,6 +3,7 @@ import { ACCOUNT_POOL_STRATEGIES, type AccountPoolStrategy, } from "../account-pool-strategy"; +import { NumberStepper } from "./NumberStepper"; const STRATEGY_LABEL_KEYS = { quota: "accountPool.strategyQuota", @@ -16,11 +17,19 @@ export interface AccountPoolStrategyControlsProps { disabled?: boolean; strategySelectId?: string; stickyInputId?: string; + /** When true, omit the outer strategy label (parent card already titled). */ + hideStrategyLabel?: boolean; onStrategyChange(strategy: AccountPoolStrategy): void; onStickyDraftChange(value: string): void; onStickyCommit(): void; } +function clampStickyDraft(raw: string, delta: number): string { + const parsed = Number.parseInt(raw, 10); + const base = Number.isFinite(parsed) ? parsed : 1; + return String(Math.min(100, Math.max(1, base + delta))); +} + /** * Shared strategy select + round-robin sticky limit for Codex / Anthropic account pools. */ @@ -30,15 +39,16 @@ export default function AccountPoolStrategyControls({ disabled = false, strategySelectId = "account-pool-strategy", stickyInputId = "account-pool-sticky-limit", + hideStrategyLabel = false, onStrategyChange, onStickyDraftChange, onStickyCommit, }: AccountPoolStrategyControlsProps) { const t = useT(); return ( -