@@ -37,7 +37,6 @@ let syncManager: SyncManager | undefined;
3737 * list, fetch, pull, push. This is the only object the command handlers touch. */
3838let cli : CliApi | undefined ;
3939let initializingPromise : Promise < void > | undefined ;
40- let configRefreshTimeout : NodeJS . Timeout | undefined ;
4140let lastConfigRefreshSignature : string | undefined ;
4241let runtimeDisposables : vscode . Disposable [ ] = [ ] ;
4342
@@ -405,13 +404,11 @@ export async function activate(context: vscode.ExtensionContext) {
405404 enhancedTreeProvider . setExtensionState ( ExtensionState . SETTINGS_CHANGED ) ;
406405 statusBar . showSettingsChanged ( ) ;
407406 } else {
408- const valid = validateN8nConfig ( ) . isValid ;
409407 const root = getWorkspaceRoot ( ) ;
410- const wasInit = root ? isFolderPreviouslyInitialized ( root ) : false ;
411- if ( valid && wasInit ) {
412- enhancedTreeProvider . setExtensionState ( ExtensionState . UNINITIALIZED ) ;
413- statusBar . showNotInitialized ( ) ;
414- } else if ( ! valid ) {
408+ const hasUnifiedConfig = root ? fs . existsSync ( path . join ( root , 'n8nac-config.json' ) ) : false ;
409+ const valid = validateN8nConfig ( ) . isValid ;
410+ if ( ! hasUnifiedConfig || ! valid ) {
411+ resetExtensionRuntimeState ( ) ;
415412 enhancedTreeProvider . setExtensionState ( ExtensionState . CONFIGURING ) ;
416413 statusBar . showConfiguring ( ) ;
417414 } else {
@@ -433,15 +430,8 @@ export async function activate(context: vscode.ExtensionContext) {
433430 ) ;
434431
435432 const refreshFromConfigFile = async ( ) => {
436- if ( configRefreshTimeout ) {
437- clearTimeout ( configRefreshTimeout ) ;
438- }
439-
440- configRefreshTimeout = setTimeout ( async ( ) => {
441- outputChannel . appendLine ( '[n8n] Workspace config changed. Refreshing extension state...' ) ;
442- await refreshStateFromWorkspaceConfig ( context ) ;
443- configRefreshTimeout = undefined ;
444- } , 150 ) ;
433+ outputChannel . appendLine ( '[n8n] Workspace config changed. Refreshing extension state...' ) ;
434+ await refreshStateFromWorkspaceConfig ( context ) ;
445435 } ;
446436
447437 configWatcher . onDidCreate ( refreshFromConfigFile ) ;
@@ -539,12 +529,22 @@ async function determineInitialState(context: vscode.ExtensionContext) {
539529 lastConfigRefreshSignature = getConfigRefreshSignature ( workspaceRoot ) ;
540530
541531 if ( ! workspaceRoot ) {
532+ resetExtensionRuntimeState ( ) ;
542533 enhancedTreeProvider . setExtensionState ( ExtensionState . UNINITIALIZED ) ;
543534 statusBar . hide ( ) ;
544535 updateContextKeys ( ) ;
545536 return ;
546537 }
547538
539+ const hasUnifiedConfig = fs . existsSync ( path . join ( workspaceRoot , 'n8nac-config.json' ) ) ;
540+ if ( ! hasUnifiedConfig ) {
541+ resetExtensionRuntimeState ( ) ;
542+ enhancedTreeProvider . setExtensionState ( ExtensionState . CONFIGURING ) ;
543+ statusBar . showConfiguring ( ) ;
544+ updateContextKeys ( ) ;
545+ return ;
546+ }
547+
548548 const previouslyInitialized = isFolderPreviouslyInitialized ( workspaceRoot ) ;
549549
550550 if ( previouslyInitialized && configValidation . isValid ) {
@@ -893,10 +893,6 @@ async function reinitializeSyncManager(context: vscode.ExtensionContext) {
893893}
894894
895895export function deactivate ( ) {
896- if ( configRefreshTimeout ) {
897- clearTimeout ( configRefreshTimeout ) ;
898- configRefreshTimeout = undefined ;
899- }
900896 disposeRuntimeDisposables ( ) ;
901897 proxyService . stop ( ) ;
902898}
0 commit comments