diff --git a/internal/manifest/service.go b/internal/manifest/service.go index f77a41c..cf44988 100644 --- a/internal/manifest/service.go +++ b/internal/manifest/service.go @@ -33,7 +33,7 @@ func GetEndpoints(ctx context.Context) (*Manifest, error) { // Use custom backend URL for HTTP API manifest.SetHTTPBaseURL(CustomBackendURL) } else { - // Extract base URL from default manifest URL (e.g., "https://dashboard.seedfa.st") + // Extract base URL from default manifest URL (e.g., "https://seedfa.st") // This ensures HTTP API goes to the same host where manifest was fetched baseURL := strings.TrimSuffix(defaultManifestURL, "/cli-endpoints.json") manifest.SetHTTPBaseURL(baseURL) diff --git a/internal/manifest/types.go b/internal/manifest/types.go index 2e0d62e..5cbbbe5 100644 --- a/internal/manifest/types.go +++ b/internal/manifest/types.go @@ -62,10 +62,8 @@ func (m *Manifest) HTTPBaseURL() string { } host := u.Host - if strings.HasPrefix(host, "agent.") { - // Replace agent subdomain with dashboard (e.g., agent.seedfa.st -> dashboard.seedfa.st) - host = strings.Replace(host, "agent.", "dashboard.", 1) - } + // Strip agent subdomain (e.g., agent.seedfa.st -> seedfa.st) + host = strings.TrimPrefix(host, "agent.") // Remove default ports (80 for http, 443 for https) if (scheme == "http" && strings.HasSuffix(host, ":80")) || diff --git a/internal/mcpserver/handlers.go b/internal/mcpserver/handlers.go index bb0badf..19922a6 100644 --- a/internal/mcpserver/handlers.go +++ b/internal/mcpserver/handlers.go @@ -91,7 +91,7 @@ func (s *Server) toolDoctor(ctx context.Context) (CallToolResult, error) { } else { sb.WriteString("Auth: NOT CONFIGURED\n") sb.WriteString(" Add SEEDFAST_API_KEY to your MCP config env section\n") - sb.WriteString(" Get your key from https://dashboard.seedfa.st/\n") + sb.WriteString(" Get your key from https://seedfa.st/dashboard\n") } sb.WriteString(fmt.Sprintf("Platform: %s/%s\n", runtime.GOOS, runtime.GOARCH)) @@ -110,7 +110,7 @@ func (s *Server) getAuthToken() (string, error) { if token == "" { return "", fmt.Errorf("SEEDFAST_API_KEY not configured. " + "Add it to your MCP config env section. " + - "Get your key from https://dashboard.seedfa.st/") + "Get your key from https://seedfa.st/dashboard") } return strings.TrimSpace(token), nil } diff --git a/internal/orchestration/completion_handler.go b/internal/orchestration/completion_handler.go index 35c6344..0d2393b 100644 --- a/internal/orchestration/completion_handler.go +++ b/internal/orchestration/completion_handler.go @@ -75,7 +75,7 @@ func (ch *CompletionHandler) NotifyCompletion(elapsed time.Duration, tableCount // Display dashboard link with arrow and cyan color arrowAndLabel := pterm.NewStyle(pterm.FgLightCyan).Sprint("→ View stats: ") - dashboardURL := pterm.NewStyle(pterm.FgCyan).Sprint("https://dashboard.seedfa.st") + dashboardURL := pterm.NewStyle(pterm.FgCyan).Sprint("https://seedfa.st/dashboard") pterm.Println(arrowAndLabel + dashboardURL) } diff --git a/internal/ui/tui/components/summary_box.go b/internal/ui/tui/components/summary_box.go index da06a7d..a29b9a4 100644 --- a/internal/ui/tui/components/summary_box.go +++ b/internal/ui/tui/components/summary_box.go @@ -11,7 +11,7 @@ import ( "github.com/charmbracelet/lipgloss" ) -const dashboardURL = "https://dashboard.seedfa.st" +const dashboardURL = "https://seedfa.st/dashboard" // SummaryBoxComponent renders the completion or failure summary. type SummaryBoxComponent struct { @@ -56,7 +56,7 @@ func (s SummaryBoxComponent) View() string { // viewSuccess renders: // // ✓ Seeded 10 tables (123,456 rows) in 2m 15s -// → View stats: https://dashboard.seedfa.st +// → View stats: https://seedfa.st/dashboard func (s SummaryBoxComponent) viewSuccess() string { var sb strings.Builder diff --git a/internal/ui/tui/components/summary_box_test.go b/internal/ui/tui/components/summary_box_test.go index 1d1643f..0a5ccaa 100644 --- a/internal/ui/tui/components/summary_box_test.go +++ b/internal/ui/tui/components/summary_box_test.go @@ -23,7 +23,7 @@ func TestSuccessSummary(t *testing.T) { if !strings.Contains(view, "2m 30s") { t.Error("should contain '2m 30s'") } - if !strings.Contains(view, "dashboard.seedfa.st") { + if !strings.Contains(view, "seedfa.st/dashboard") { t.Error("should contain dashboard URL when totalRows > 0") } if !strings.Contains(view, "View stats") {