Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -120,4 +120,4 @@ internal_docs/

# Keep cmd/mcpproxy-tray/ directory and its contents (this line is optional)
!cmd/mcpproxy-tray/
!cmd/mcpproxy-tray/**
!cmd/mcpproxy-tray/**
2 changes: 1 addition & 1 deletion cmd/mcpproxy-tray/internal/api/adapter.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//go:build darwin
//go:build darwin || windows

package api

Expand Down
33 changes: 26 additions & 7 deletions cmd/mcpproxy-tray/internal/api/client.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//go:build darwin
//go:build darwin || windows

package api

Expand All @@ -16,6 +16,7 @@ import (
"os"
"os/exec"
"path/filepath"
"runtime"
"sort"
"strings"
"time"
Expand Down Expand Up @@ -571,14 +572,32 @@ func (c *Client) OpenWebUI() error {
c.logger.Info("Opening web control panel", "url", displayURL)
}

cmd := exec.Command("open", url)
if err := cmd.Run(); err != nil {
if c.logger != nil {
c.logger.Error("Failed to open web control panel", "url", displayURL, "error", err)
switch runtime.GOOS {
case "darwin":
cmd := exec.Command("open", url)
if err := cmd.Run(); err != nil {
if c.logger != nil {
c.logger.Error("Failed to open web control panel", "url", displayURL, "error", err)
}
return fmt.Errorf("failed to open web control panel: %w", err)
}
return fmt.Errorf("failed to open web control panel: %w", err)
return nil
case "windows":
// Try rundll32 first
if err := exec.Command("rundll32", "url.dll,FileProtocolHandler", url).Run(); err == nil {
return nil
}
// Fallback to cmd start
if err := exec.Command("cmd", "/c", "start", "", url).Run(); err != nil {
if c.logger != nil {
c.logger.Error("Failed to open web control panel", "url", displayURL, "error", err)
}
return fmt.Errorf("failed to open web control panel: %w", err)
}
return nil
default:
return fmt.Errorf("unsupported OS for OpenWebUI: %s", runtime.GOOS)
}
return nil
}

// makeRequest makes an HTTP request to the API with enhanced error handling and retry logic
Expand Down
2 changes: 1 addition & 1 deletion cmd/mcpproxy-tray/internal/monitor/health.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//go:build darwin
//go:build darwin || windows

package monitor

Expand Down
Loading