Skip to content

Commit 3cadfe1

Browse files
another one
1 parent 88c4bb1 commit 3cadfe1

File tree

2 files changed

+17
-76
lines changed

2 files changed

+17
-76
lines changed

mcpjam-inspector/client/src/components/CiEvalsTab.tsx

Lines changed: 14 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ import {
1111
} from "@/components/ui/resizable";
1212
import { useSharedAppState } from "@/state/app-state-context";
1313
import { useCiEvalsRoute, navigateToCiEvalsRoute } from "@/lib/ci-evals-router";
14-
import { aggregateSuite, groupSuitesByTag, groupRunsByCommit } from "./evals/helpers";
15-
import { OverviewPanel } from "./evals/overview-panel";
14+
import { aggregateSuite, groupRunsByCommit } from "./evals/helpers";
1615
import { useEvalMutations } from "./evals/use-eval-mutations";
1716
import { useEvalQueries } from "./evals/use-eval-queries";
1817
import { useEvalHandlers } from "./evals/use-eval-handlers";
@@ -35,7 +34,6 @@ export function CiEvalsTab({ convexWorkspaceId }: CiEvalsTabProps) {
3534

3635
const [deletingSuiteId, setDeletingSuiteId] = useState<string | null>(null);
3736
const [deletingRunId, setDeletingRunId] = useState<string | null>(null);
38-
const [filterTag, setFilterTag] = useState<string | null>(null);
3937
const [sidebarMode, setSidebarMode] = useState<SidebarMode>("runs");
4038
const [hasAutoSwitchedMode, setHasAutoSwitchedMode] = useState(false);
4139

@@ -89,9 +87,6 @@ export function CiEvalsTab({ convexWorkspaceId }: CiEvalsTabProps) {
8987
[queries.sortedSuites],
9088
);
9189

92-
const tagGroups = useMemo(() => groupSuitesByTag(sdkSuites), [sdkSuites]);
93-
const hasTags = tagGroups.some((g) => g.tag !== "Untagged");
94-
9590
const commitGroups = useMemo(
9691
() => groupRunsByCommit(sdkSuites),
9792
[sdkSuites],
@@ -117,12 +112,6 @@ export function CiEvalsTab({ convexWorkspaceId }: CiEvalsTabProps) {
117112
commitGroups.find((g) => g.commitSha === selectedCommitSha) ?? null
118113
);
119114
}, [commitGroups, selectedCommitSha]);
120-
const allTags = useMemo(
121-
() =>
122-
Array.from(new Set(sdkSuites.flatMap((e) => e.suite.tags ?? []))).sort(),
123-
[sdkSuites],
124-
);
125-
126115
const selectedSuiteEntry = useMemo(() => {
127116
if (!selectedSuiteId) return null;
128117
return (
@@ -166,10 +155,6 @@ export function CiEvalsTab({ convexWorkspaceId }: CiEvalsTabProps) {
166155
navigateToCiEvalsRoute({ type: "suite-overview", suiteId });
167156
}, []);
168157

169-
const handleSelectOverview = useCallback(() => {
170-
navigateToCiEvalsRoute({ type: "list" });
171-
}, []);
172-
173158
const handleSelectCommit = useCallback((commitSha: string) => {
174159
navigateToCiEvalsRoute({ type: "commit-detail", commitSha });
175160
}, []);
@@ -293,11 +278,7 @@ export function CiEvalsTab({ convexWorkspaceId }: CiEvalsTabProps) {
293278
suites={sdkSuites}
294279
selectedSuiteId={selectedSuiteId}
295280
onSelectSuite={handleSelectSuite}
296-
onSelectOverview={handleSelectOverview}
297-
isOverviewSelected={!selectedSuiteId && route.type !== "commit-detail"}
298281
isLoading={queries.isOverviewLoading}
299-
filterTag={filterTag}
300-
hasTags={true}
301282
sidebarMode={sidebarMode}
302283
onSidebarModeChange={setSidebarMode}
303284
commitGroups={commitGroups}
@@ -333,18 +314,19 @@ export function CiEvalsTab({ convexWorkspaceId }: CiEvalsTabProps) {
333314
</div>
334315
</div>
335316
) : route.type === "list" || !selectedSuite ? (
336-
<OverviewPanel
337-
suites={sdkSuites}
338-
allTags={allTags}
339-
filterTag={filterTag}
340-
onFilterTagChange={setFilterTag}
341-
onSelectSuite={handleSelectSuite}
342-
onRerunSuite={(suiteId) => {
343-
const entry = sdkSuites.find((e) => e.suite._id === suiteId);
344-
if (entry) handlers.handleRerun(entry.suite);
345-
}}
346-
allCommitGroups={commitGroups}
347-
/>
317+
<div className="flex-1 flex items-center justify-center">
318+
<div className="text-center max-w-md mx-auto p-8">
319+
<div className="w-20 h-20 bg-muted rounded-full flex items-center justify-center mx-auto mb-6">
320+
<GitBranch className="h-10 w-10 text-muted-foreground" />
321+
</div>
322+
<h2 className="text-2xl font-semibold text-foreground mb-2">
323+
Select a suite
324+
</h2>
325+
<p className="text-sm text-muted-foreground">
326+
Choose a CI suite or commit from the sidebar to inspect runs and test iterations.
327+
</p>
328+
</div>
329+
</div>
348330
) : queries.isSuiteDetailsLoading ? (
349331
<div className="flex h-full items-center justify-center">
350332
<div className="text-center">

mcpjam-inspector/client/src/components/evals/ci-suite-list-sidebar.tsx

Lines changed: 3 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { useState, useEffect, useMemo } from "react";
2-
import { BarChart3 } from "lucide-react";
32
import { cn } from "@/lib/utils";
43
import type { CommitGroup, EvalSuiteOverviewEntry } from "./types";
54
import { TagBadges } from "./tag-editor";
@@ -20,12 +19,7 @@ interface CiSuiteListSidebarProps {
2019
suites: EvalSuiteOverviewEntry[];
2120
selectedSuiteId: string | null;
2221
onSelectSuite: (suiteId: string) => void;
23-
onSelectOverview: () => void;
24-
isOverviewSelected: boolean;
2522
isLoading?: boolean;
26-
filterTag?: string | null;
27-
onFilterTagChange?: (tag: string | null) => void;
28-
hasTags: boolean;
2923
sidebarMode: SidebarMode;
3024
onSidebarModeChange: (mode: SidebarMode) => void;
3125
commitGroups: CommitGroup[];
@@ -97,11 +91,7 @@ export function CiSuiteListSidebar({
9791
suites,
9892
selectedSuiteId,
9993
onSelectSuite,
100-
onSelectOverview,
101-
isOverviewSelected,
10294
isLoading = false,
103-
filterTag,
104-
hasTags,
10595
sidebarMode,
10696
onSidebarModeChange,
10797
commitGroups,
@@ -110,15 +100,11 @@ export function CiSuiteListSidebar({
110100
}: CiSuiteListSidebarProps) {
111101
useTick(); // keep "Xm ago" labels ticking
112102

113-
const filteredSuites = filterTag
114-
? suites.filter((e) => e.suite.tags?.includes(filterTag))
115-
: suites;
116-
117103
// Group suites by base name (strip trailing timestamps/parenthetical suffixes
118104
// that some SDK users append, e.g. "Suite Name (2026-03-12 15:20:43)")
119105
const groupedSuites = useMemo(() => {
120106
const groups = new Map<string, EvalSuiteOverviewEntry[]>();
121-
for (const entry of filteredSuites) {
107+
for (const entry of suites) {
122108
const rawName = entry.suite.name || "Untitled suite";
123109
// Strip trailing " (YYYY-MM-DD ...)" or " (timestamp)" patterns
124110
const baseName = rawName.replace(/\s*\(\d{4}-\d{2}-\d{2}[^)]*\)\s*$/, "").trim() || rawName;
@@ -136,13 +122,7 @@ export function CiSuiteListSidebar({
136122
});
137123
}
138124
return groups;
139-
}, [filteredSuites]);
140-
141-
const uniqueSuiteCount = groupedSuites.size;
142-
143-
const failCount = suites.filter(
144-
(e) => e.latestRun?.result === "failed",
145-
).length;
125+
}, [suites]);
146126

147127
return (
148128
<div className="flex h-full flex-col">
@@ -173,27 +153,6 @@ export function CiSuiteListSidebar({
173153
</div>
174154
</div>
175155

176-
{/* Dashboard button — always visible regardless of sidebar mode */}
177-
<div className="px-3 py-2 border-b">
178-
<button
179-
onClick={onSelectOverview}
180-
className={cn(
181-
"w-full flex items-center gap-2 rounded-md px-2.5 py-1.5 text-left text-xs font-medium transition-colors cursor-pointer border border-transparent",
182-
isOverviewSelected
183-
? "bg-primary/15 text-primary border-primary/30"
184-
: "text-muted-foreground hover:bg-accent hover:text-foreground hover:border-border",
185-
)}
186-
>
187-
<BarChart3 className="h-3.5 w-3.5 shrink-0" />
188-
<span className="flex-1">Dashboard</span>
189-
{failCount > 0 && (
190-
<span className="shrink-0 flex h-4 min-w-[16px] items-center justify-center rounded-full bg-destructive px-1 text-[9px] font-bold text-destructive-foreground">
191-
{failCount}
192-
</span>
193-
)}
194-
</button>
195-
</div>
196-
197156
{sidebarMode === "runs" ? (
198157
<CommitListSidebar
199158
commitGroups={commitGroups}
@@ -207,7 +166,7 @@ export function CiSuiteListSidebar({
207166
<div className="p-4 text-center text-xs text-muted-foreground">
208167
Loading suites...
209168
</div>
210-
) : filteredSuites.length === 0 ? (
169+
) : suites.length === 0 ? (
211170
<div className="p-4 text-center text-xs text-muted-foreground">
212171
No SDK suites found.
213172
</div>

0 commit comments

Comments
 (0)