-
Cache Settings
+
{t("cacheSettings")}
Configure semantic and prompt caching behavior
@@ -598,7 +598,7 @@ export default function SystemStorageTab() {
@@ -642,7 +642,7 @@ export default function SystemStorageTab() {
-
Log retention policy
+
{t("logRetentionPolicyTitle")}
Request logs retain up to CALL_LOGS_TABLE_MAX_ROWS rows (default:
100,000). Proxy logs retain up to PROXY_LOGS_TABLE_MAX_ROWS rows. Older
diff --git a/src/app/(dashboard)/dashboard/usage/components/BudgetTab.tsx b/src/app/(dashboard)/dashboard/usage/components/BudgetTab.tsx
index a0c83fe551..50e5d3c846 100644
--- a/src/app/(dashboard)/dashboard/usage/components/BudgetTab.tsx
+++ b/src/app/(dashboard)/dashboard/usage/components/BudgetTab.tsx
@@ -461,26 +461,29 @@ export default function BudgetTab() {
-
-
+
+
0 ? "red" : undefined}
/>
0 ? "amber" : undefined}
hint="≥ warning"
/>
-
+
@@ -493,7 +496,7 @@ export default function BudgetTab() {
setSearchQuery(e.target.value)}
className="w-full pl-10 pr-3 py-2 bg-bg-base border border-border rounded-lg focus:outline-none focus:border-primary text-sm"
@@ -504,10 +507,10 @@ export default function BudgetTab() {
onChange={(e) => setSortKey(e.target.value as typeof sortKey)}
className="bg-bg-base border border-border rounded-md px-2 py-1.5 text-xs text-text-main cursor-pointer"
>
-
-
-
-
+
+
+
+
@@ -601,9 +604,9 @@ export default function BudgetTab() {
Key
Today
Month
-
Daily lim
-
Monthly lim
-
Used %
+
{t("budgetColDailyLim")}
+
{t("budgetColMonthlyLim")}
+
{t("budgetColUsedPct")}
Status
diff --git a/src/i18n/messages/en.json b/src/i18n/messages/en.json
index cd8b9d5104..bb75a0027d 100644
--- a/src/i18n/messages/en.json
+++ b/src/i18n/messages/en.json
@@ -1103,7 +1103,9 @@
"updateNow": "Update Now",
"updating": "Updating...",
"updateAvailableDesc": "A new version is available. Click to update.",
- "updateStarted": "Update started..."
+ "updateStarted": "Update started...",
+ "reloadingPageAutomatically": "Reloading page automatically...",
+ "providerTopology": "Provider Topology"
},
"analytics": {
"title": "Analytics",
@@ -1231,7 +1233,8 @@
"permissionsTitle": "Permissions: {name}",
"allowAllDesc": "This key can access all available models.",
"restrictDesc": "This key can access {selectedCount} of {totalModels} models.",
- "selectedCount": "{count} selected"
+ "selectedCount": "{count} selected",
+ "maxActiveSessions": "Max Active Sessions"
},
"auditLog": {
"title": "Audit Log",
@@ -3522,7 +3525,9 @@
"providerSummaryAll": "Total",
"ideProviders": "IDE Providers",
"ideProvidersDesc": "Editors with built-in AI subscription. Use the provider page to import credentials directly from the IDE keychain.",
- "noIdeProviders": "No IDE providers match the current filters."
+ "noIdeProviders": "No IDE providers match the current filters.",
+ "providerDetailFastTierTooltip": "Apply Codex Fast tier to all Codex connections by default",
+ "providerDetailFastDefaultLabel": "Fast default"
},
"settings": {
"title": "Settings",
@@ -4216,7 +4221,61 @@
"optional": "Optional",
"current": "Current",
"remove": "Remove",
- "search": "Search"
+ "search": "Search",
+ "oneproxyTitle": "1proxy Free Proxy Marketplace",
+ "oneproxyTotalProxies": "Total Proxies",
+ "oneproxyAvgQuality": "Avg Quality",
+ "resilienceScope": "Scope:",
+ "resilienceTrigger": "Trigger:",
+ "resilienceEffect": "Effect:",
+ "resilienceRequestQueueTitle": "Request Queue & Rate",
+ "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
+ "resilienceRequestsPerMinute": "Requests per minute",
+ "resilienceMinTimeBetweenRequests": "Minimum time between requests",
+ "resilienceConcurrentRequests": "Concurrent requests",
+ "resilienceMaxQueueWaitTime": "Maximum queue wait time",
+ "resilienceBaseCooldown": "Base cooldown",
+ "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
+ "resilienceDefaultPerProvider": "Default (per provider)",
+ "resilienceAlwaysOn": "Always on",
+ "resilienceAlwaysOff": "Always off",
+ "routingRemoveEntry": "Remove entry",
+ "routingNeedlesSubstrings": "Needles (substrings to match)",
+ "routingCaseSensitive": "Case sensitive",
+ "routingPrefixes": "Prefixes",
+ "routingMatch": "Match",
+ "routingReplacement": "Replacement",
+ "routingReplaceAllOccurrences": "Replace all occurrences",
+ "routingPatternRegex": "Pattern (regex)",
+ "routingFlags": "Flags",
+ "routingNeedles": "Needles",
+ "routingBlockText": "Block text",
+ "routingIdempotencyKey": "Idempotency key",
+ "routingEntrypoint": "Entrypoint",
+ "routingVersionFormat": "Version format",
+ "routingCchAlgorithm": "CCH algorithm",
+ "routingWordsToObfuscate": "Words to obfuscate (ZWJ inserted after first char)",
+ "logsSettingsTitle": "Logs Settings",
+ "detailedLogsLabel": "Detailed Logs Enabled",
+ "detailedLogsDesc": "Enable detailed request/response logging",
+ "callLogPipelineLabel": "Call Log Pipeline",
+ "callLogPipelineDesc": "Enable call log processing pipeline",
+ "maxDetailSizeLabel": "Max Detail Size (KB)",
+ "maxDetailSizeDesc": "Maximum size for detailed log entries",
+ "ringBufferSizeLabel": "Ring Buffer Size",
+ "ringBufferSizeDesc": "Size of the ring buffer for logs",
+ "semanticCacheEnabledLabel": "Semantic Cache Enabled",
+ "semanticCacheMaxSizeLabel": "Semantic Cache Max Size",
+ "semanticCacheMaxSizeDesc": "Maximum number of semantic cache entries",
+ "semanticCacheTTLLabel": "Semantic Cache TTL",
+ "promptCacheEnabledLabel": "Prompt Cache Enabled",
+ "promptCacheEnabledDesc": "Enable prompt caching",
+ "promptCacheStrategyLabel": "Prompt Cache Strategy",
+ "promptCacheStrategyDesc": "Strategy for prompt caching",
+ "alwaysPreserveClientCacheLabel": "Always Preserve Client Cache",
+ "alwaysPreserveClientCacheDesc": "Client cache preservation policy",
+ "logRetentionPolicyTitle": "Log retention policy",
+ "resilienceUseUpstream429HintsForBreaker": "Use upstream 429 hints (breaker)"
},
"contextRtk": {
"title": "RTK Engine",
@@ -4830,7 +4889,21 @@
"quotaCutoffsDefaultHint": "Default min remaining: {default}%",
"quotaCutoffsResetAll": "Reset all",
"quotaCutoffsNoWindows": "No quota windows are available for this account yet.",
- "quotaThresholdInvalid": "Enter a whole number from 0 to 100."
+ "quotaThresholdInvalid": "Enter a whole number from 0 to 100.",
+ "budgetKpiToday": "Today",
+ "budgetKpiThisMonth": "This month",
+ "budgetKpiProjEom": "Proj EOM",
+ "budgetKpiBlocked": "Blocked",
+ "budgetKpiAtRisk": "At risk",
+ "budgetKpiActiveKeys": "Active keys",
+ "budgetSearchKeysPlaceholder": "Search keys...",
+ "budgetSortPctUsed": "Sort: % Used ↓",
+ "budgetSortTodayDollar": "Sort: Today $ ↓",
+ "budgetSortMonthDollar": "Sort: Month $ ↓",
+ "budgetSortNameAZ": "Sort: Name (A–Z)",
+ "budgetColDailyLim": "Daily lim",
+ "budgetColMonthlyLim": "Monthly lim",
+ "budgetColUsedPct": "Used %"
},
"modals": {
"waitingAuth": "Waiting for Authorization",