@@ -34,7 +34,7 @@ import { CompletedLocalQueryInfo, LocalQueryInfo } from './query-results';
3434import { getQueryHistoryItemId , getQueryText , QueryHistoryInfo } from './query-history-info' ;
3535import { DatabaseManager } from './databases' ;
3636import { registerQueryHistoryScrubber } from './query-history-scrubber' ;
37- import { QueryStatus } from './query-status' ;
37+ import { QueryStatus , variantAnalysisStatusToQueryStatus } from './query-status' ;
3838import { slurpQueryHistory , splatQueryHistory } from './query-serialization' ;
3939import * as fs from 'fs-extra' ;
4040import { CliVersionConstraint } from './cli' ;
@@ -52,6 +52,8 @@ import { QueryWithResults } from './run-queries-shared';
5252import { QueryRunner } from './queryRunner' ;
5353import { VariantAnalysisManager } from './remote-queries/variant-analysis-manager' ;
5454import { nanoid } from 'nanoid' ;
55+ import { VariantAnalysisHistoryItem } from './remote-queries/variant-analysis-history-item' ;
56+ import { getTotalResultCount } from './remote-queries/shared/variant-analysis' ;
5557
5658/**
5759 * query-history.ts
@@ -611,6 +613,27 @@ export class QueryHistoryManager extends DisposableObject {
611613 await this . refreshTreeView ( ) ;
612614 } ) ;
613615
616+ const variantAnalysisStatusUpdateSubscription = this . variantAnalysisManager . onVariantAnalysisStatusUpdated ( async ( variantAnalysis ) => {
617+ const items = this . treeDataProvider . allHistory . filter ( i => i . t === 'variant-analysis' && i . variantAnalysis . id === variantAnalysis . id ) ;
618+ const status = variantAnalysisStatusToQueryStatus ( variantAnalysis . status ) ;
619+
620+ if ( items . length > 0 ) {
621+ items . forEach ( async ( item ) => {
622+ const variantAnalysisHistoryItem = item as VariantAnalysisHistoryItem ;
623+ variantAnalysisHistoryItem . status = status ;
624+ variantAnalysisHistoryItem . failureReason = variantAnalysis . failureReason ;
625+ variantAnalysisHistoryItem . resultCount = getTotalResultCount ( variantAnalysis . scannedRepos ) ;
626+ variantAnalysisHistoryItem . variantAnalysis = variantAnalysis ;
627+ if ( status === QueryStatus . Completed ) {
628+ variantAnalysisHistoryItem . completed = true ;
629+ }
630+ } ) ;
631+ await this . refreshTreeView ( ) ;
632+ } else {
633+ void logger . log ( 'Variant analysis status update event received for unknown variant analysis' ) ;
634+ }
635+ } ) ;
636+
614637 const variantAnalysisRemovedSubscription = this . variantAnalysisManager . onVariantAnalysisRemoved ( async ( variantAnalysis ) => {
615638 const item = this . treeDataProvider . allHistory . find ( i => i . t === 'variant-analysis' && i . variantAnalysis . id === variantAnalysis . id ) ;
616639 if ( item ) {
@@ -619,6 +642,7 @@ export class QueryHistoryManager extends DisposableObject {
619642 } ) ;
620643
621644 this . push ( variantAnalysisAddedSubscription ) ;
645+ this . push ( variantAnalysisStatusUpdateSubscription ) ;
622646 this . push ( variantAnalysisRemovedSubscription ) ;
623647 }
624648
0 commit comments