@@ -648,7 +648,7 @@ test.describe('group chat room deep links', () => {
648648 expect ( toolNames . at ( - 1 ) ) . toBe ( 'live_tool_1' )
649649 } )
650650
651- test ( 'keeps persistent room Agent grids stable while exact runs activate only matching cells ' , async ( { page } ) => {
651+ test ( 'keeps persistent room Agent grids stable while active runs glow the complete room avatar ' , async ( { page } ) => {
652652 await setup ( page , '/#/hermes/group-chat/room/room-alpha' )
653653
654654 const activity = ( overrides : Record < string , unknown > = { } ) => ( {
@@ -673,6 +673,7 @@ test.describe('group chat room deep links', () => {
673673 await expect ( alphaGrid ) . toHaveAttribute ( 'data-agent-count' , '1' )
674674 await expect ( betaGrid ) . toHaveAttribute ( 'data-agent-count' , '1' )
675675 await expect ( emptyGrid ) . toHaveAttribute ( 'data-agent-count' , '0' )
676+ await expect ( alphaGrid ) . not . toHaveClass ( / i s - a c t i v e / )
676677 await expect ( alphaGrid . locator ( '.room-agent-grid-cell.is-active' ) ) . toHaveCount ( 0 )
677678 await expect ( emptyGrid . locator ( '.room-agent-grid-neutral' ) ) . toHaveCount ( 1 )
678679 await expect ( alphaGrid ) . toHaveCSS ( 'width' , '36px' )
@@ -685,16 +686,18 @@ test.describe('group chat room deep links', () => {
685686 await triggerGroupSocket ( page , 'room_agent_activity' , activity ( { runId : 'run-live-tools-2' } ) )
686687 const activeAlphaAgent = alphaGrid . locator ( '[data-agent-id="agent-row-1"]' )
687688 const activeRunAvatar = page . locator ( '.group-agent-run[data-run-id="run-live-tools"] .run-avatar' )
688- await expect ( activeAlphaAgent ) . toHaveClass ( / i s - a c t i v e / )
689- await expect ( alphaGrid . locator ( '.room-agent-grid-cell.is-active' ) ) . toHaveCount ( 1 )
689+ await expect ( alphaGrid ) . toHaveClass ( / i s - a c t i v e / )
690+ await expect ( alphaGrid ) . toHaveAttribute ( 'aria-busy' , 'true' )
691+ await expect ( activeAlphaAgent ) . not . toHaveClass ( / i s - a c t i v e / )
692+ await expect ( alphaGrid . locator ( '.room-agent-grid-cell.is-active' ) ) . toHaveCount ( 0 )
690693 await expect ( activeRunAvatar ) . toHaveClass ( / r u n - a v a t a r - a c t i v e / )
691694 await expect ( page . locator ( '.group-agent-run[data-run-id="run-history-tools"] .run-avatar' ) ) . not . toHaveClass ( / r u n - a v a t a r - a c t i v e / )
692695 if ( evidenceDir ) {
693696 await alphaRoom . screenshot ( { path : `${ evidenceDir } /active-room-rainbow.png` } )
694697 await activeRunAvatar . scrollIntoViewIfNeeded ( )
695698 await page . screenshot ( { path : `${ evidenceDir } /active-message-rainbow.png` } )
696699 }
697- await expect . poll ( ( ) => activeAlphaAgent . evaluate ( ( element ) => {
700+ await expect . poll ( ( ) => alphaGrid . evaluate ( ( element ) => {
698701 const glow = getComputedStyle ( element , '::after' )
699702 return {
700703 inset : glow . top ,
@@ -704,8 +707,8 @@ test.describe('group chat room deep links', () => {
704707 }
705708 } ) ) . toMatchObject ( {
706709 inset : '-4px' ,
707- animation : expect . stringContaining ( 'room-agent -rainbow-glow' ) ,
708- radius : '8px ' ,
710+ animation : expect . stringContaining ( 'room-avatar -rainbow-glow' ) ,
711+ radius : '12px ' ,
709712 shadow : expect . not . stringMatching ( / ^ n o n e $ / ) ,
710713 } )
711714 await expect . poll ( ( ) => activeRunAvatar . evaluate ( ( element ) => {
@@ -727,7 +730,7 @@ test.describe('group chat room deep links', () => {
727730 } )
728731 await page . emulateMedia ( { reducedMotion : 'reduce' } )
729732 await expect . poll ( ( ) => Promise . all ( [
730- activeAlphaAgent . evaluate ( element => getComputedStyle ( element , '::after' ) . animationName ) ,
733+ alphaGrid . evaluate ( element => getComputedStyle ( element , '::after' ) . animationName ) ,
731734 activeRunAvatar . evaluate ( element => getComputedStyle ( element , '::before' ) . animationName ) ,
732735 activeRunAvatar . evaluate ( element => getComputedStyle ( element , '::before' ) . boxShadow ) ,
733736 ] ) ) . toEqual ( [ 'none' , 'none' , expect . stringContaining ( 'rgb(255, 107, 107)' ) ] )
@@ -742,14 +745,15 @@ test.describe('group chat room deep links', () => {
742745
743746 await expect ( alphaRoom . locator ( ':scope > .room-icon' ) ) . toHaveCount ( 0 )
744747 await expect ( alphaRoom . locator ( ':scope > .room-agent-grid + .room-info' ) ) . toHaveCount ( 1 )
745- await expect ( betaGrid . locator ( '[data-agent-id="agent-row-runtime"]' ) ) . toHaveClass ( / i s - a c t i v e / )
748+ await expect ( betaGrid ) . toHaveClass ( / i s - a c t i v e / )
749+ await expect ( betaGrid . locator ( '[data-agent-id="agent-row-runtime"]' ) ) . not . toHaveClass ( / i s - a c t i v e / )
746750 await expect . poll ( ( ) => alphaRoom . locator ( '.room-info' ) . evaluate ( element => element . getBoundingClientRect ( ) . x ) ) . toBe ( alphaInfoX )
747751 await expect . poll ( ( ) => betaRoom . locator ( '.room-info' ) . evaluate ( element => element . getBoundingClientRect ( ) . x ) ) . toBe ( betaInfoX )
748752
749753 await triggerGroupSocket ( page , 'room_agent_activity' , activity ( { status : 'ready' } ) )
750- await expect ( alphaGrid . locator ( '[data-agent-id="agent-row-1"]' ) ) . toHaveClass ( / i s - a c t i v e / )
754+ await expect ( alphaGrid ) . toHaveClass ( / i s - a c t i v e / )
751755 await triggerGroupSocket ( page , 'room_agent_activity' , activity ( { runId : 'run-live-tools-2' , status : 'ready' } ) )
752- await expect ( alphaGrid . locator ( '.room-agent-grid-cell. is-active' ) ) . toHaveCount ( 0 )
756+ await expect ( alphaGrid ) . not . toHaveClass ( / i s - a c t i v e / )
753757
754758 await triggerGroupSocket ( page , 'agents_updated' , {
755759 roomId : 'room-alpha' ,
@@ -779,7 +783,8 @@ test.describe('group chat room deep links', () => {
779783 await betaRoom . click ( )
780784 await expect ( page ) . toHaveURL ( / # \/ h e r m e s \/ g r o u p - c h a t \/ r o o m \/ r o o m - b e t a $ / )
781785 await expect ( alphaGrid ) . toHaveAttribute ( 'data-agent-count' , '2' )
782- await expect ( betaGrid . locator ( '[data-agent-id="agent-row-runtime"]' ) ) . toHaveClass ( / i s - a c t i v e / )
786+ await expect ( betaGrid ) . toHaveClass ( / i s - a c t i v e / )
787+ await expect ( betaGrid . locator ( '[data-agent-id="agent-row-runtime"]' ) ) . not . toHaveClass ( / i s - a c t i v e / )
783788 } )
784789
785790 test ( 'removes an interrupted run approval from the room approval surface' , async ( { page } ) => {
0 commit comments