Skip to content

Commit 96cda77

Browse files
committed
fix: cap token savings at 99.99%, fix Docker status in Web UI
Token savings: - Web UI: show 1 decimal (e.g. 99.8%) for >=10%, cap at 99.99% - macOS: same logic, prevents misleading '100% tokens saved' Docker status in Web UI: - Same workaround as macOS: when API reports docker_available=false but connected stdio servers exist, treat Docker as available. - The backend Docker health checker gets stuck at 'max retries exceeded' Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 8db706e commit 96cda77

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

frontend/src/views/Dashboard.vue

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@
187187
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
188188
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6" />
189189
</svg>
190-
<span class="text-lg font-bold">{{ tokenSavingsData.saved_tokens_percentage.toFixed(0) }}%</span>
190+
<span class="text-lg font-bold">{{ tokenSavingsData.saved_tokens_percentage >= 99.995 ? '99.99' : tokenSavingsData.saved_tokens_percentage >= 10 ? tokenSavingsData.saved_tokens_percentage.toFixed(1) : tokenSavingsData.saved_tokens_percentage.toFixed(0) }}%</span>
191191
<span class="text-xs font-medium">tokens saved</span>
192192
</div>
193193
</div>
@@ -463,7 +463,14 @@ const loadSecurityStatus = async () => {
463463
// Docker status from dedicated endpoint
464464
const dockerResponse = await api.getDockerStatus()
465465
if (dockerResponse.success && dockerResponse.data) {
466-
dockerStatus.value = { available: dockerResponse.data.docker_available ?? false }
466+
let available = dockerResponse.data.docker_available ?? false
467+
// Workaround: Docker health checker can get stuck at 'max retries exceeded'
468+
// even when Docker containers are running. If API says unavailable but
469+
// we have connected stdio servers (which use Docker), treat as available.
470+
if (!available && serversStore.servers.some(s => s.connected && s.protocol === 'stdio')) {
471+
available = true
472+
}
473+
dockerStatus.value = { available }
467474
}
468475
} catch {
469476
// Docker endpoint may not exist - treat as unavailable

native/macos/MCPProxy/MCPProxy/Views/DashboardView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ struct DashboardView: View {
6868
HStack(spacing: 4) {
6969
Image(systemName: "arrow.down.right")
7070
.font(.system(size: 10 * fontScale))
71-
Text("\(Int(stats.savedTokensPercentage))%")
71+
Text("\(stats.savedTokensPercentage >= 99.995 ? "99.99" : String(format: "%.1f", stats.savedTokensPercentage))%")
7272
.font(.scaled(.title2, scale: fontScale))
7373
.fontWeight(.bold)
7474
Text("tokens saved")

0 commit comments

Comments
 (0)