@@ -82,7 +82,7 @@ function initialize(env, context, specifiedOptions, platform, extraOptionDefs) {
8282 const requestor = Requestor ( platform , options , environment ) ;
8383
8484 let flags = { } ;
85- let flagOverrides = { } ;
85+ let flagOverrides ;
8686
8787 // Central flag store facade - single source of truth for all flag access
8888 const flagStore = {
@@ -100,15 +100,26 @@ function initialize(env, context, specifiedOptions, platform, extraOptionDefs) {
100100 } ,
101101
102102 getAll ( ) {
103- const allKeys = new Set ( [ ...Object . keys ( flags || { } ) , ...Object . keys ( flagOverrides || { } ) ] ) ;
104-
105103 const result = { } ;
106- allKeys . forEach ( key => {
104+
105+ // Add all flags first
106+ for ( const key in flags ) {
107107 const flag = this . get ( key ) ;
108108 if ( flag ) {
109109 result [ key ] = flag ;
110110 }
111- } ) ;
111+ }
112+
113+ // Override with any flagOverrides (they take precedence)
114+ if ( flagOverrides ) {
115+ for ( const key in flagOverrides ) {
116+ const override = this . get ( key ) ;
117+ if ( override ) {
118+ result [ key ] = override ;
119+ }
120+ }
121+ }
122+
112123 return result ;
113124 } ,
114125 } ;
@@ -910,42 +921,56 @@ function initialize(env, context, specifiedOptions, platform, extraOptionDefs) {
910921 registerPlugins ( logger , pluginEnvironment , client , plugins ) ;
911922
912923 function setOverride ( key , value ) {
913- const data = { key, value } ;
914924 const mods = { } ;
915925
916- const currentValue = flagStore . get ( key ) ;
926+ const currentFlag = flagStore . get ( key ) ;
927+ const currentValue = currentFlag ? currentFlag . value : null ;
917928
918929 if ( currentValue === value ) {
919930 logger . debug ( `setOverride: No change needed for ${ key } , value already ${ value } ` ) ;
920931 return ;
921932 }
922933
923- const newFlag = utils . extend ( { } , data ) ;
924- delete newFlag [ 'key' ] ;
925- flagOverrides [ data . key ] = newFlag ;
934+ const newFlag = { value } ;
935+ if ( ! flagOverrides ) {
936+ flagOverrides = { } ;
937+ }
938+ flagOverrides [ key ] = newFlag ;
926939 const newDetail = getFlagDetail ( newFlag ) ;
927940
928- mods [ data . key ] = { previous : currentValue , current : newDetail } ;
941+ mods [ key ] = { previous : currentValue , current : newDetail } ;
929942
930- notifyInspectionFlagChanged ( data , newFlag ) ;
943+ notifyInspectionFlagChanged ( { key } , newFlag ) ;
931944 handleFlagChanges ( mods ) ;
932945 }
933946
934947 function removeOverride ( key ) {
935- if ( flagOverrides [ key ] ) {
936- const mods = { } ;
937- const oldOverride = flagOverrides [ key ] ;
938- const realFlag = flags [ key ] ;
948+ if ( ! flagOverrides || ! flagOverrides [ key ] ) {
949+ return ; // No override to remove
950+ }
939951
940- mods [ key ] = { previous : oldOverride . value , current : realFlag ? getFlagDetail ( realFlag ) : undefined } ;
952+ const mods = { } ;
953+ const oldOverride = flagOverrides [ key ] ;
954+ const realFlag = flags [ key ] ;
941955
942- delete flagOverrides [ key ] ;
943- notifyInspectionFlagChanged ( { key } , realFlag ) ;
944- handleFlagChanges ( mods ) ; // don't wait for this Promise to be resolved
956+ mods [ key ] = { previous : oldOverride . value , current : realFlag ? getFlagDetail ( realFlag ) : undefined } ;
957+
958+ delete flagOverrides [ key ] ;
959+
960+ // If no more overrides, reset to undefined
961+ if ( Object . keys ( flagOverrides ) . length === 0 ) {
962+ flagOverrides = undefined ;
945963 }
964+
965+ notifyInspectionFlagChanged ( { key } , realFlag ) ;
966+ handleFlagChanges ( mods ) ; // don't wait for this Promise to be resolved
946967 }
947968
948969 function clearAllOverrides ( ) {
970+ if ( ! flagOverrides ) {
971+ return ; // No overrides to clear
972+ }
973+
949974 const mods = { } ;
950975 Object . keys ( flagOverrides ) . forEach ( key => {
951976 const oldOverride = flagOverrides [ key ] ;
@@ -954,14 +979,18 @@ function initialize(env, context, specifiedOptions, platform, extraOptionDefs) {
954979 mods [ key ] = { previous : oldOverride . value , current : realFlag ? getFlagDetail ( realFlag ) : undefined } ;
955980 } ) ;
956981
957- flagOverrides = { } ;
982+ flagOverrides = undefined ; // Reset to undefined instead of empty object
958983
959984 if ( Object . keys ( mods ) . length > 0 ) {
960985 handleFlagChanges ( mods ) ; // don't wait for this Promise to be resolved
961986 }
962987 }
963988
964989 function getAllOverrides ( ) {
990+ if ( ! flagOverrides ) {
991+ return { } ; // No overrides set
992+ }
993+
965994 const result = { } ;
966995 Object . keys ( flagOverrides ) . forEach ( key => {
967996 const override = flagOverrides [ key ] ;
0 commit comments