@@ -29,7 +29,17 @@ export class ProcessService {
2929 console . info ( '[ProcessService] getProcesses: jobs fetched' , { count : jobs . length } ) ;
3030 const jobProcesses : Record < string , DataJob [ ] > = { } ;
3131 for ( const job of jobs ) {
32- const key = job . data . threadId ?? "unknown" ;
32+ // Group jobs by threadId if available, otherwise group by company name
33+ // This prevents jobs from different companies without threadId from being grouped together
34+ let key : string ;
35+ if ( job . data . threadId ) {
36+ key = job . data . threadId ;
37+ } else {
38+ // For jobs without threadId, create a unique key per company
39+ // This ensures jobs from different companies are in separate processes
40+ const companyName = job . data . companyName ?? "unknown" ;
41+ key = `unknown-${ companyName } ` ;
42+ }
3343 if ( ! jobProcesses [ key ] ) {
3444 jobProcesses [ key ] = [ ] ;
3545 }
@@ -47,6 +57,7 @@ export class ProcessService {
4757 const processes = await this . getProcesses ( ) ;
4858 const companyProcesses : Record < string , CompanyProcess > = { } ;
4959 for ( const process of processes ) {
60+ // Use the process's company name, or "unknown" if not available
5061 const company = process . company ?? "unknown" ;
5162 if ( companyProcesses [ company ] ) {
5263 companyProcesses [ company ] . processes . push ( process ) ;
@@ -102,8 +113,11 @@ export class ProcessService {
102113 } ;
103114 } )
104115
116+ // If no threadId, create a process id based on company name to keep them separate
117+ const processId = id ?? ( company ? `unknown-${ company } ` : "unknown" ) ;
118+
105119 const process : Process = {
106- id : id ?? "unknown" ,
120+ id : processId ,
107121 jobs,
108122 wikidataId,
109123 company,
0 commit comments