@@ -681,7 +681,7 @@ describe("EnvironmentRegistry", () => {
681681 } ) ,
682682 ) ;
683683
684- it . effect ( "only a fresh descriptor for the rejected environment unlocks it" , ( ) =>
684+ it . effect ( "only a fresh health check for the rejected environment unlocks it" , ( ) =>
685685 Effect . gen ( function * ( ) {
686686 const harness = yield * makeHarness ( [ RELAY_TARGET ] , [ ] , [ ] , {
687687 initialDisabled : [ RELAY_TARGET . environmentId ] ,
@@ -694,7 +694,10 @@ describe("EnvironmentRegistry", () => {
694694 orchestrationProtocolVersion : ORCHESTRATION_PROTOCOL_VERSION ,
695695 capabilities : { repositoryIdentity : true } ,
696696 } ) ;
697- const discovered = ( value : ExecutionEnvironmentDescriptor ) => {
697+ const discovered = (
698+ value : ExecutionEnvironmentDescriptor ,
699+ checkedAt = "2026-09-15T00:00:00Z" ,
700+ ) => {
698701 const environment = {
699702 environmentId : value . environmentId ,
700703 label : value . label ,
@@ -709,7 +712,7 @@ describe("EnvironmentRegistry", () => {
709712 environmentId : value . environmentId ,
710713 endpoint : environment . endpoint ,
711714 status : "online" ,
712- checkedAt : "2026-09-15T00:00:00Z" ,
715+ checkedAt,
713716 descriptor : value ,
714717 } ;
715718 return {
@@ -727,8 +730,10 @@ describe("EnvironmentRegistry", () => {
727730 } ) ;
728731 const initial = yield * Deferred . make < void > ( ) ;
729732 const unrelated = yield * Deferred . make < void > ( ) ;
733+ const replayed = yield * Deferred . make < void > ( ) ;
730734 const refreshed = yield * Deferred . make < void > ( ) ;
731735 let firstEnvironmentCalls = 0 ;
736+ let secondEnvironmentCalls = 0 ;
732737 yield * Effect . gen ( function * ( ) {
733738 const registry = yield * EnvironmentRegistry . EnvironmentRegistry ;
734739 yield * watchDiscoveredCompatibility ( ) . pipe (
@@ -744,7 +749,13 @@ describe("EnvironmentRegistry", () => {
744749 firstEnvironmentCalls === 1 ? initial : refreshed ,
745750 undefined ,
746751 ) ;
747- } else yield * Deferred . succeed ( unrelated , undefined ) ;
752+ } else {
753+ secondEnvironmentCalls += 1 ;
754+ yield * Deferred . succeed (
755+ secondEnvironmentCalls === 1 ? unrelated : replayed ,
756+ undefined ,
757+ ) ;
758+ }
748759 } ) ,
749760 ) ,
750761 ) ,
@@ -776,11 +787,32 @@ describe("EnvironmentRegistry", () => {
776787 ( yield * SubscriptionRef . get ( registry . entries ) ) . get ( RELAY_TARGET . environmentId )
777788 ?. unsupportedReason ,
778789 ) . toBe ( error . message ) ;
790+ yield * SubscriptionRef . update ( discoveryState , ( state ) => ( {
791+ ...state ,
792+ refreshing : true ,
793+ environments : new Map ( ) ,
794+ } ) ) ;
795+ yield * SubscriptionRef . update ( discoveryState , ( state ) => ( {
796+ ...state ,
797+ refreshing : false ,
798+ environments : new Map ( [
799+ [ RELAY_TARGET . environmentId , discovered ( descriptor ( RELAY_TARGET . environmentId ) ) ] ,
800+ [
801+ SECOND_TARGET . environmentId ,
802+ discovered ( descriptor ( SECOND_TARGET . environmentId ) , "2026-09-15T00:01:00Z" ) ,
803+ ] ,
804+ ] ) ,
805+ } ) ) ;
806+ yield * Deferred . await ( replayed ) ;
807+ expect (
808+ ( yield * SubscriptionRef . get ( registry . entries ) ) . get ( RELAY_TARGET . environmentId )
809+ ?. unsupportedReason ,
810+ ) . toBe ( error . message ) ;
779811 yield * SubscriptionRef . update ( discoveryState , ( state ) => ( {
780812 ...state ,
781813 environments : new Map ( state . environments ) . set (
782814 RELAY_TARGET . environmentId ,
783- discovered ( descriptor ( RELAY_TARGET . environmentId ) ) ,
815+ discovered ( descriptor ( RELAY_TARGET . environmentId ) , "2026-09-15T00:02:00Z" ) ,
784816 ) ,
785817 } ) ) ;
786818 yield * Deferred . await ( refreshed ) ;
0 commit comments