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
46 changes: 46 additions & 0 deletions .archive/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,3 +135,49 @@ Note that the repo's own `npm run check:unused-exports` does **not** find these.
**Verification:** `tsc --noEmit` clean, full vitest suite green (701 files / 6390 tests), production webpack build clean.

**To restore:** reverse the `git mv` for the file in question. No other edits are needed.

---

## SWE-bench "Benchmark (Beta)" UI — archived 2026-08-16

The SWE-bench Pro benchmark runner UI (task browser, run builder, per-run
session group in the chat panel, `benchmark` WorkStation tab) is parked. On
`develop` it was already unreachable from normal UI: no menu offered the
`benchmark` create target, nothing created a `benchmark` tab except the E2E
seed helpers, and `BenchmarkTabSidebar` had no consumer. The only live entry
was clicking a legacy "Benchmark run coordinator" session in the sidebar,
which routed to the run-list surface. **Not** the Housekeeper _token_ benchmark
(`housekeeperTokenBenchmark`, `integrations:housekeeper.benchmark.*`) — that
is a different feature and stays live.

**What moved here (self-contained to the feature):**

- `src/features/BenchmarkPanel/` — panel, task selector, `useBenchmarkTasks`, `useBenchmarkAgentBatchRun`
- `src/modules/WorkStation/shared/SidebarModules/Benchmark/` — `BenchmarkTabSidebar`
- `src/modules/WorkStation/TabContent/renderers/benchmark.tsx` — the `benchmark` tab renderer
- `src/engines/ChatPanel/panels/BenchmarkRunBuilder.tsx` — the run-builder creator surface
- `src/store/benchmark/` — batch status / active batch atoms
- `src/api/tauri/benchmark/` — the `benchmarkApi` client over the `benchmark_*` Tauri commands
- `src/app/root/e2e/helpers/benchmark.ts` — E2E seed/inspect helpers
- `tests/e2e/specs/core/{benchmark-run-ui,benchmark-docker-execution}.spec.mjs` (mirrored under `.archive/tests/`)

**What deliberately stayed live:**

- `src-tauri/src/benchmark/` — the Rust runner/commands still compile and are registered; they are now unreferenced from the frontend and can be removed in a backend-only PR
- `src/config/agentIcons.tsx` `flask-conical` entry and `src/assets/fileTypeIcons/folder-benchmark*.svg` — generic icon registry / file-icon theme, not feature-specific
- Housekeeper token benchmark (`src/modules/MainApp/Integrations/Housekeeper/HousekeeperCategoryView.tsx`, `rpc.validation.housekeeperTokenBenchmark`)

**Shared files edited in place** to sever the branch:

- `src/store/workstation/tabs/{types.ts,tabFactory.ts,storage.ts,index.ts,factories/{index,codeEditor}.ts}` — dropped `"benchmark"` from `WorkStationTabType`, its host mapping and persisted-type allow-list, and `BenchmarkTabData` / `benchmarkTabFactory` / `createBenchmarkTab`
- `src/modules/WorkStation/TabContent/registry.ts`, `shared/SidebarModules/index.ts`, `shared/TabBar/components/SortableTab/index.tsx` (`BookLock` icon branch), `AppShell/CodeSidebarHeaderActions.tsx`
- `src/store/ui/chatPanelAtom.ts`, `src/types/ui/chatPanel.ts`, `src/engines/ChatPanel/navigation/chatPanelSurfaceReducer.ts` — removed `CHAT_PANEL_CREATE_TARGET.BENCHMARK`, `CHAT_PANEL_CONTENT_MODE.BENCHMARK_SESSION_GROUP`, `CHAT_PANEL_SURFACE_KIND.BENCHMARK_SESSION_GROUP` and their navigate/reducer cases
- `src/engines/ChatPanel/{index.tsx,ChatPanelContent.tsx,ChatPanelEmptyContent.tsx,hooks/useChatPanelContentState.tsx}` — removed the run-list mount, the run-builder creator branch, and `showBenchmarkSessionGroupContent`
- `src/scaffold/NavigationSidebar/connectors/{useWorkstationSidebarHandlers.ts,useSessionMenuItems/{index.tsx,menuItemBuilders.tsx},WorkstationSidebarConnector/sidebarConnector.pinnedAndRevealData.ts}` — removed coordinator-session routing, child-session hiding, and master-row highlighting
- `src/util/session/sessionDisplayMetadata.ts` — removed the `benchmark` flag / `flask-conical` icon override
- `src/app/root/{E2EBootstrap.tsx,e2e/types.ts}`, `tests/e2e/wdio.conf.mjs` — removed helper wiring and the docker fixture builder
- `src/i18n/locales/*/sessions.json` — removed `creator.benchmark.*` and `creator.createTarget.benchmark` (13 locales)

**Behavior change:** legacy "Benchmark run coordinator" sessions and their child sessions now appear in the sidebar as ordinary sessions (previously the children were hidden and the coordinator opened the run list). Any persisted `benchmark` WorkStation tab is dropped by the storage allow-list on load.

**To restore:** reverse the `git mv`s above and revert the in-place edits (see the archival commit).
File renamed without changes.
12 changes: 0 additions & 12 deletions src/app/root/E2EBootstrap.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ import {
removeAccount,
} from "./e2e/helpers/accounts";
import { createAgentOrgHelpers } from "./e2e/helpers/agentOrgs";
import { createBenchmarkE2EHelpers } from "./e2e/helpers/benchmark";
import { createCloudHelpers } from "./e2e/helpers/cloud";
import { createConfigHelpers } from "./e2e/helpers/config";
import { createDebugEndpointHelpers } from "./e2e/helpers/debugEndpoints";
Expand Down Expand Up @@ -305,13 +304,6 @@ export const E2EBootstrap: FC = () => {
openAgentStationDiff,
} = createNavigationHelpers(store);

const {
seedBenchmarkRun,
inspectBenchmarkRun,
startLocalDockerBenchmarkRun,
getBenchmarkRunStatus,
} = createBenchmarkE2EHelpers(store);

const {
cloudSeedAuthState,
cloudClearAuthState,
Expand Down Expand Up @@ -512,10 +504,6 @@ export const E2EBootstrap: FC = () => {
openAgentTab,
openOrgTab,
inspectWorkstationSurface,
seedBenchmarkRun,
inspectBenchmarkRun,
startLocalDockerBenchmarkRun,
getBenchmarkRunStatus,
cloudSeedAuthState,
cloudClearAuthState,
cloudReadAuthState,
Expand Down
19 changes: 0 additions & 19 deletions src/app/root/e2e/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -820,25 +820,6 @@ export interface E2EHelpers {
agentConfigRootCount: number;
}>
>;
seedBenchmarkRun: (opts: {
batchId?: string;
sourcePath: string;
taskIds: string[];
activeTaskId?: string;
}) => Promise<Result<{ batchId: string; activeTaskId: string | null }>>;
inspectBenchmarkRun: () => Promise<
Result<{
batchStatus: Json | null;
activeBatchId: string | null;
activeTaskId: string | null;
}>
>;
startLocalDockerBenchmarkRun: (opts: {
sourcePath: string;
taskId: string;
patch: string;
}) => Promise<Result<{ status: Json }>>;
getBenchmarkRunStatus: (runId: string) => Promise<Result<{ status: Json }>>;
seedUserPresence: (opts: {
roles: CustomRoleDefinition[];
presence: UserPresenceState;
Expand Down
5 changes: 0 additions & 5 deletions src/engines/ChatPanel/ChatPanelContent.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@ vi.mock("./SessionContentView", () => ({
createElement("div", { "data-gui-session": sessionId }),
}));

vi.mock("@src/features/BenchmarkPanel", () => ({
BenchmarkPanel: () => createElement("div", { "data-benchmark": "true" }),
}));

const { ChatPanelContent } = await import("./ChatPanelContent");

function render(sessionViewMode: SessionViewMode): string {
Expand All @@ -25,7 +21,6 @@ function render(sessionViewMode: SessionViewMode): string {
onSessionContinuation: () => undefined,
paginationEnabled: false,
position: "right" as const,
showBenchmarkSessionGroupContent: false,
showPanelContent: true,
showSessionContent: true,
sessionViewMode,
Expand Down
20 changes: 4 additions & 16 deletions src/engines/ChatPanel/ChatPanelContent.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
import React, { Suspense } from "react";
import React from "react";

import type { SessionContinuation } from "@src/store/session/sessionTabPlacementAtom";
import type { ChatHistoryDisplayMode } from "@src/store/ui/chatPanelAtom";

import SessionContentView from "./SessionContentView";
import type { SessionViewMode } from "./hooks/useSessionViewMode";

const BenchmarkPanel = React.lazy(() =>
import("@src/features/BenchmarkPanel").then((module) => ({
default: module.BenchmarkPanel,
}))
);

interface ChatPanelContentProps {
currentSessionId: string | null;
emptyChatContent: React.ReactNode;
Expand All @@ -20,7 +14,6 @@ interface ChatPanelContentProps {
displayMode: ChatHistoryDisplayMode;
paginationEnabled: boolean;
position: "left" | "right";
showBenchmarkSessionGroupContent: boolean;
showPanelContent: boolean;
showSessionContent: boolean;
/** Non-GUI surface for the active session; mounted only while one is on. */
Expand All @@ -32,8 +25,8 @@ interface ChatPanelContentProps {
}

/**
* The shared "chat column": session transcript, the benchmark run-list (still
* contentMode-driven), and the Launchpad / creator surfaces (`emptyChatContent`).
* The shared "chat column": session transcript and the Launchpad / creator
* surfaces (`emptyChatContent`).
* The workspace / organization / work-item / project / explore
* surfaces are no longer rendered here — they are dedicated tab-typed renderers
* dispatched by `UnifiedChatPanelTabContent`.
Expand All @@ -46,7 +39,6 @@ export function ChatPanelContent({
displayMode,
paginationEnabled,
position,
showBenchmarkSessionGroupContent,
showPanelContent,
showSessionContent,
alternateSessionView,
Expand All @@ -56,11 +48,7 @@ export function ChatPanelContent({
const alternateActive = sessionViewMode !== "gui";
return (
<div className="relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden">
{!showPanelContent ? null : showBenchmarkSessionGroupContent ? (
<Suspense fallback={null}>
<BenchmarkPanel surface="runList" />
</Suspense>
) : showSessionContent && currentSessionId ? (
{!showPanelContent ? null : showSessionContent && currentSessionId ? (
<>
{/* Kept mounted while another view is showing: unmounting would drop
the virtualized chat list's measurement cache and force a full
Expand Down
13 changes: 0 additions & 13 deletions src/engines/ChatPanel/ChatPanelEmptyContent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,6 @@ const CreateWorkItemView = React.lazy(
() =>
import("@src/modules/ProjectManager/WorkItems/components/CreateWorkItemView")
);
const BenchmarkRunBuilder = React.lazy(() =>
import("./panels/BenchmarkRunBuilder").then((module) => ({
default: module.BenchmarkRunBuilder,
}))
);

type SessionCreatorSlot = NonNullable<ChatPanelProps["sessionCreatorSlot"]>;
type SessionCreatorSlotProps = React.ComponentProps<SessionCreatorSlot>;
Expand Down Expand Up @@ -421,13 +416,5 @@ export function ChatPanelEmptyContent({
return renderCollabOrgCreator();
}

if (createTarget === CHAT_PANEL_CREATE_TARGET.BENCHMARK) {
return (
<Suspense fallback={null}>
<BenchmarkRunBuilder className={creatorClassName} />
</Suspense>
);
}

return null;
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ const WorkManagement = React.lazy(

interface UnifiedChatPanelTabContentProps {
activeTab: ChatPanelTab | null;
/** The shared "chat column" node (session transcript, Launchpad / creators,
* and the benchmark run-list). Built by the host so this dispatcher stays
/** The shared "chat column" node (session transcript, Launchpad / creators).
* Built by the host so this dispatcher stays
* agnostic of its heavy prop surface. */
chatColumn: React.ReactNode;
isTerminalTabActive: boolean;
Expand Down
4 changes: 2 additions & 2 deletions src/engines/ChatPanel/TabContent/registry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
* adding a new tab type is a type error until it has an entry — the same
* guarantee the WorkStation `REGISTRY` provides.
*
* Session and Launchpad share the "chat column" (transcript / creators /
* benchmark run-list, still contentMode-driven inside that column). Kanban and
* Session and Launchpad share the "chat column" (transcript / creators,
* still contentMode-driven inside that column). Kanban and
* terminals render in their own keep-alive layers. Every other surface renders
* a dedicated, self-sufficient component that reads its tab payload directly.
*/
Expand Down
21 changes: 2 additions & 19 deletions src/engines/ChatPanel/hooks/useChatPanelContentState.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ interface UseChatPanelContentStateOptions {
}

export interface ChatPanelContentState {
showBenchmarkSessionGroupContent: boolean;
showCloudOrgContent: boolean;
showExploreContent: boolean;
showExplicitNonSessionContent: boolean;
Expand All @@ -45,46 +44,33 @@ export function useChatPanelContentState({
selectedWorkItem,
selectedWorkspace,
}: UseChatPanelContentStateOptions): ChatPanelContentState {
const showBenchmarkSessionGroupContent =
active && contentMode === CHAT_PANEL_CONTENT_MODE.BENCHMARK_SESSION_GROUP;
const showSessionContent =
active &&
!showBenchmarkSessionGroupContent &&
contentMode === CHAT_PANEL_CONTENT_MODE.SESSION &&
Boolean(currentSessionId);
const showWorkItemContent =
Boolean(selectedWorkItem) &&
!showBenchmarkSessionGroupContent &&
!showSessionContent;
const showWorkItemContent = Boolean(selectedWorkItem) && !showSessionContent;
const showProjectContent =
Boolean(selectedProject) &&
!showBenchmarkSessionGroupContent &&
!showSessionContent &&
!showWorkItemContent;
Boolean(selectedProject) && !showSessionContent && !showWorkItemContent;
const showProjectOrgContent =
Boolean(selectedProjectOrg) &&
!showBenchmarkSessionGroupContent &&
!showSessionContent &&
!showWorkItemContent &&
!showProjectContent;
const showExploreContent =
exploreOpen &&
!showBenchmarkSessionGroupContent &&
!showSessionContent &&
!showWorkItemContent &&
!showProjectContent &&
!showProjectOrgContent;
const showCloudOrgContent =
Boolean(selectedCloudOrg) &&
!showBenchmarkSessionGroupContent &&
!showSessionContent &&
!showWorkItemContent &&
!showProjectContent &&
!showProjectOrgContent &&
!showExploreContent;
const showWorkspaceOverviewContent =
Boolean(selectedWorkspace) &&
!showBenchmarkSessionGroupContent &&
!showSessionContent &&
!showWorkItemContent &&
!showProjectContent &&
Expand All @@ -95,7 +81,6 @@ export function useChatPanelContentState({
contentMode === CHAT_PANEL_CONTENT_MODE.NON_SESSION;
const showPanelContent =
active ||
showBenchmarkSessionGroupContent ||
showWorkItemContent ||
showProjectContent ||
showProjectOrgContent ||
Expand All @@ -104,7 +89,6 @@ export function useChatPanelContentState({
showWorkspaceOverviewContent ||
showExplicitNonSessionContent;
const showHeader =
showBenchmarkSessionGroupContent ||
showWorkItemContent ||
showProjectContent ||
showProjectOrgContent ||
Expand All @@ -115,7 +99,6 @@ export function useChatPanelContentState({
active;

return {
showBenchmarkSessionGroupContent,
showCloudOrgContent,
showExploreContent,
showExplicitNonSessionContent,
Expand Down
3 changes: 0 additions & 3 deletions src/engines/ChatPanel/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -660,9 +660,6 @@ const ChatPanel: React.FC<ChatPanelProps> = memo(
onSessionContinuation={handleSessionContinuation}
paginationEnabled={paginationEnabled}
position={position}
showBenchmarkSessionGroupContent={
contentState.showBenchmarkSessionGroupContent
}
showPanelContent={contentState.showPanelContent}
showSessionContent={contentState.showSessionContent}
sessionViewMode={sessionView.mode}
Expand Down
5 changes: 0 additions & 5 deletions src/engines/ChatPanel/navigation/chatPanelSurfaceReducer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,6 @@ export function reduceChatPanelSurfaceCommand(
...next,
contentMode: CHAT_PANEL_CONTENT_MODE.SESSION,
};
case CHAT_PANEL_SURFACE_KIND.BENCHMARK_SESSION_GROUP:
return {
...next,
contentMode: CHAT_PANEL_CONTENT_MODE.BENCHMARK_SESSION_GROUP,
};
case CHAT_PANEL_SURFACE_KIND.NEW_PROJECT:
return {
...next,
Expand Down
Loading
Loading