33import Link from "next/link" ;
44import dynamic from "next/dynamic" ;
55import { useCallback , useEffect , useMemo , useRef , useState } from "react" ;
6- import useSWR from "swr" ;
76import { Alert , AlertDescription , AlertTitle } from "@/components/ui/alert" ;
87import { Badge } from "@/components/ui/badge" ;
98import { Button } from "@/components/ui/button" ;
@@ -25,7 +24,6 @@ import { TaskVerdictBadge } from "@/components/task-verdict-badge";
2524import { UnifiedDrawerWrapper } from "@/components/unified-drawer-wrapper" ;
2625import { ExperimentsList } from "@/components/experiments-list" ;
2726import { QaCostSuffix } from "@/components/qa-cost-suffix" ;
28- import { fetcher } from "@/lib/api" ;
2927import { getExperimentAgentKey } from "@/lib/experiment-agent-grouping" ;
3028import {
3129 formatCostUsd ,
@@ -42,11 +40,6 @@ import {
4240 STATUS_CONFIG ,
4341} from "@/lib/status-config" ;
4442import { summarizeTrials , type TrialAggregate } from "@/lib/trial-aggregation" ;
45- import {
46- isBrowseTaskDetail ,
47- taskDetailValue ,
48- type TaskDetailResource ,
49- } from "@/lib/task-detail-resource" ;
5043import type {
5144 Task ,
5245 TaskOpenAgentModelSummary ,
@@ -662,7 +655,6 @@ export function TaskDetailClient({
662655 agentCards,
663656 defaultVersionError,
664657 defaultVersionId,
665- detailKey,
666658 error,
667659 explicitVersionMissing,
668660 handleSelectVersion,
@@ -693,42 +685,22 @@ export function TaskDetailClient({
693685 [ selectedVersion , trialsForVersion ]
694686 ) ;
695687 const [ drawer , setDrawer ] = useState < DrawerState | null > ( null ) ;
696- const [ drawerShowTask , setDrawerShowTask ] = useState ( true ) ;
688+ const [ drawerShowTask , setDrawerShowTask ] = useState ( false ) ;
697689 const [ drawerShowTrial , setDrawerShowTrial ] = useState ( true ) ;
698- const { data : drawerDetailResource , isLoading : isDrawerDetailLoading } =
699- useSWR < TaskDetailResource > ( drawer ? detailKey : null , fetcher , {
700- revalidateOnFocus : false ,
701- revalidateOnMount : true ,
702- } ) ;
703- const canonicalDrawerDetailResource =
704- drawerDetailResource && ! isBrowseTaskDetail ( drawerDetailResource )
705- ? drawerDetailResource
706- : undefined ;
707- const canonicalDrawerDetail = taskDetailValue ( canonicalDrawerDetailResource ) ;
708- const drawerTask = canonicalDrawerDetail ?. task ?? task ;
709- const drawerTrialsForVersion = useMemo ( ( ) => {
710- const canonicalTrials = canonicalDrawerDetail ?. task . trials ;
711- if ( ! canonicalTrials || selectedVersionId === null ) {
712- return trialsForVersion ;
713- }
714- return canonicalTrials . filter (
715- ( trial ) => trial . task_version_id === selectedVersionId
716- ) ;
717- } , [ canonicalDrawerDetail ?. task . trials , selectedVersionId , trialsForVersion ] ) ;
718690 const drawerTrialGroups = useMemo (
719691 ( ) =>
720692 agentCards . map ( ( card ) => ( {
721693 agent : card . key ,
722694 model : card . summary . model ,
723- trials : drawerTrialsForVersion . filter (
695+ trials : trialsForVersion . filter (
724696 ( trial ) =>
725697 getExperimentAgentKey (
726698 normalizedAgentModel ( trial ) ,
727699 modelScopedAgents
728700 ) === card . key
729701 ) ,
730702 } ) ) ,
731- [ agentCards , drawerTrialsForVersion , modelScopedAgents ]
703+ [ agentCards , modelScopedAgents , trialsForVersion ]
732704 ) ;
733705 const drawerOrderedTrials = useMemo (
734706 ( ) => drawerTrialGroups . flatMap ( ( group ) => group . trials ) ,
@@ -774,6 +746,7 @@ export function TaskDetailClient({
774746 // The user (or hydration) is driving the drawer now; any unresolved
775747 // deep-link trial param no longer needs preserving.
776748 unresolvedTrialParamRef . current = false ;
749+ setDrawerShowTask ( false ) ;
777750 setDrawer ( { mode : "trial" , fallbackTrial : trial } ) ;
778751 } , [ ] ) ;
779752
@@ -892,6 +865,7 @@ export function TaskDetailClient({
892865 drawerHydratedRef . current = true ;
893866 hydrationOpeningRef . current = true ;
894867 handleSelectTrial ( previewTrial ) ;
868+ if ( urlTaskFile || urlTaskPane ) setDrawerShowTask ( true ) ;
895869 return ;
896870 }
897871 if ( isDeepLinkTrialLoading ) return ;
@@ -911,6 +885,7 @@ export function TaskDetailClient({
911885 }
912886 hydrationOpeningRef . current = true ;
913887 handleSelectTrial ( fetchedDeepLinkTrial ) ;
888+ if ( urlTaskFile || urlTaskPane ) setDrawerShowTask ( true ) ;
914889 return ;
915890 }
916891
@@ -1394,15 +1369,11 @@ export function TaskDetailClient({
13941369 taskId = { null }
13951370 // Scopes the overview's trial aggregation; this pane renders
13961371 // no header, so none of the task-driven header UI appears.
1397- task = { drawerTask ?? task }
1372+ task = { task }
13981373 staticChecksTaskId = { task . id }
1399- taskDetail = { canonicalDrawerDetailResource }
14001374 onOpenTrial = { handleOpenTrialFromOverview }
14011375 filesUrl = { `/api/tasks/${ task . id } /files` }
14021376 loadFilesLazily
1403- overviewTrialsLoading = {
1404- isDrawerDetailLoading || canonicalDrawerDetail == null
1405- }
14061377 taskVersion = { selectedVersion ?. version }
14071378 initialFilePath = { taskPaneFile }
14081379 selectedLines = { taskPaneLines }
@@ -1419,12 +1390,8 @@ export function TaskDetailClient({
14191390 activePane = { activeTaskPane }
14201391 onActivePaneChange = { selectTaskPane }
14211392 taskId = { task . id }
1422- task = { drawerTask ?? task }
1423- taskDetail = { canonicalDrawerDetailResource }
1393+ task = { task }
14241394 loadFilesLazily
1425- overviewTrialsLoading = {
1426- isDrawerDetailLoading || canonicalDrawerDetail == null
1427- }
14281395 taskVersion = { selectedVersion ?. version }
14291396 onOpenTrial = { handleOpenTrialFromOverview }
14301397 initialFilePath = { taskPaneFile }
@@ -1452,7 +1419,7 @@ export function TaskDetailClient({
14521419 isOpen = { true }
14531420 onClose = { ( ) => setDrawer ( null ) }
14541421 trial = { drawerTrial }
1455- task = { drawerTask ?? task }
1422+ task = { task }
14561423 orderedTrials = { drawerOrderedTrials }
14571424 trialIndex = { drawerTrialIndex >= 0 ? drawerTrialIndex : null }
14581425 trialGroups = { drawerTrialGroups }
0 commit comments