@@ -42,17 +42,25 @@ const MultiAgentTask: React.FC<Props> = ({ task, projectPath, defaultBranch }) =
4242 const multi = task . metadata ?. multiAgent ;
4343 const variants = ( multi ?. variants || [ ] ) as Variant [ ] ;
4444
45- const getVariantEnv = ( variant : Variant ) => {
46- if ( ! projectPath ) return undefined ;
47- return getTaskEnvVars ( {
48- taskId : task . id ,
49- taskName : variant . name || task . name ,
50- taskPath : variant . path ,
51- projectPath,
52- defaultBranch : defaultBranch || undefined ,
53- portSeed : variant . worktreeId || variant . path ,
54- } ) ;
55- } ;
45+ const variantEnvs = useMemo ( ( ) => {
46+ if ( ! projectPath ) return new Map < string , Record < string , string > > ( ) ;
47+ const envMap = new Map < string , Record < string , string > > ( ) ;
48+ for ( const variant of variants ) {
49+ const key = variant . worktreeId || variant . path ;
50+ envMap . set (
51+ key ,
52+ getTaskEnvVars ( {
53+ taskId : task . id ,
54+ taskName : variant . name || task . name ,
55+ taskPath : variant . path ,
56+ projectPath,
57+ defaultBranch : defaultBranch || undefined ,
58+ portSeed : key ,
59+ } )
60+ ) ;
61+ }
62+ return envMap ;
63+ } , [ variants , task . id , task . name , projectPath , defaultBranch ] ) ;
5664
5765 // Auto-scroll to bottom when this task becomes active
5866 const { scrollToBottom } = useAutoScrollOnTaskSwitch ( true , task . id ) ;
@@ -497,7 +505,7 @@ const MultiAgentTask: React.FC<Props> = ({ task, projectPath, defaultBranch }) =
497505 id = { `${ v . worktreeId } -main` }
498506 cwd = { v . path }
499507 providerId = { v . agent }
500- env = { getVariantEnv ( v ) }
508+ env = { variantEnvs . get ( v . worktreeId || v . path ) }
501509 autoApprove = {
502510 Boolean ( task . metadata ?. autoApprove ) &&
503511 Boolean ( agentMeta [ v . agent ] ?. autoApproveFlag )
0 commit comments