diff --git a/src/core/graph/kuzu-knowledge-graph.ts b/src/core/graph/kuzu-knowledge-graph.ts index 88efb1e82..1f012d18f 100644 --- a/src/core/graph/kuzu-knowledge-graph.ts +++ b/src/core/graph/kuzu-knowledge-graph.ts @@ -902,6 +902,7 @@ export class KuzuKnowledgeGraph implements KnowledgeGraph { readBack = String(readData); } + // Execute COPY statement const copyQuery = `COPY ${label} FROM '${csvPath}'`; const result = await this.queryEngine.executeQuery(copyQuery); diff --git a/src/core/ingestion/parallel-parsing-processor.ts b/src/core/ingestion/parallel-parsing-processor.ts index 5158807a8..9ef7fc67a 100644 --- a/src/core/ingestion/parallel-parsing-processor.ts +++ b/src/core/ingestion/parallel-parsing-processor.ts @@ -94,12 +94,10 @@ export interface ParallelParsingResult { } // Create worker pool using configuration - console.log('🔧 ParallelParsingProcessor: About to create worker pool...'); this.workerPool = await WebWorkerPoolUtils.createWorkerPool({ workerScript: '/workers/tree-sitter-worker.js', name: 'ParallelParsingPool' }); - console.log('🔧 ParallelParsingProcessor: Worker pool created successfully'); // Set up worker pool event listeners this.workerPool.on('workerCreated', (data: unknown) => { @@ -317,20 +315,16 @@ export interface ParallelParsingResult { properties: { name: definition.name, filePath, + type: definition.type, startLine: definition.startLine, endLine: definition.endLine, - type: definition.type, + qualifiedName: `${filePath}:${definition.name}`, parameters: definition.parameters, returnType: definition.returnType, accessibility: definition.accessibility, isStatic: definition.isStatic, isAsync: definition.isAsync, parentClass: definition.parentClass, - decorators: definition.decorators, - extends: definition.extends, - implements: definition.implements, - importPath: definition.importPath, - exportType: definition.exportType, docstring: definition.docstring } }; diff --git a/src/core/kuzu/csv-generator.ts b/src/core/kuzu/csv-generator.ts index b662cca2c..3526c07ca 100644 --- a/src/core/kuzu/csv-generator.ts +++ b/src/core/kuzu/csv-generator.ts @@ -44,10 +44,6 @@ export class GitNexusCSVGenerator { const formattedValue = this.formatValueForCSV(value, col, label); - // Debug: Check Function nodes and docstring column specifically (can be removed after verification) - // if (label === 'Function' && (col === 'docstring' || col === 'parentClass')) { - // console.log(` 🔍 Function ${node.id} - Column ${colIndex} (${col}): value="${value}" -> formatted="${formattedValue}"`); - // } return formattedValue; }); @@ -59,31 +55,6 @@ export class GitNexusCSVGenerator { let csvRow = rowValues.join(','); - // CRITICAL FIX: Ensure we have the right number of commas for empty trailing values - const expectedCommas = allColumns.length - 1; - const actualCommas = (csvRow.match(/,/g) || []).length; - - // Debug for problematic function - if (node.id === 'function_c2f7f72a') { - console.log(`🔧 Comma analysis for ${node.id}:`); - console.log(` Expected commas: ${expectedCommas}`); - console.log(` Actual commas: ${actualCommas}`); - console.log(` Row before fix: "${csvRow}"`); - console.log(` Row ends with: "${csvRow.slice(-5)}"`); - console.log(` Row char codes: [${csvRow.slice(-5).split('').map(c => c.charCodeAt(0)).join(', ')}]`); - } - - if (actualCommas < expectedCommas) { - const missingCommas = expectedCommas - actualCommas; - csvRow += ','.repeat(missingCommas); - console.log(`🔧 Fixed missing ${missingCommas} trailing comma(s) for ${node.id}`); - - if (node.id === 'function_c2f7f72a') { - console.log(` Row after fix: "${csvRow}"`); - console.log(` New comma count: ${(csvRow.match(/,/g) || []).length}`); - } - } - return csvRow; }); @@ -126,10 +97,10 @@ export class GitNexusCSVGenerator { * Schema-aware value formatting with type conversion */ private static formatValueForCSV(value: any, column: string, entityType: NodeLabel | RelationshipType): string { - if (value === null || value === undefined) return ''; + if (value === null || value === undefined) return '""'; // Explicit empty value for KuzuDB - // Handle empty strings - if (value === '') return ''; + // Handle empty strings - make them explicit for KuzuDB + if (value === '') return '""'; // Handle arrays (convert to JSON string for KuzuDB STRING[] compatibility) if (Array.isArray(value)) { diff --git a/src/lib/web-worker-pool.ts b/src/lib/web-worker-pool.ts index 6665090b0..0b27c0665 100644 --- a/src/lib/web-worker-pool.ts +++ b/src/lib/web-worker-pool.ts @@ -59,11 +59,6 @@ export class WebWorkerPool { this.timeout = options.timeout || 30000; // 30 seconds this.name = options.name || 'WebWorkerPool'; - // Debug: Log actual worker configuration - console.log(`🔧 WebWorkerPool "${this.name}" constructor:`); - console.log(` Requested maxWorkers: ${options.maxWorkers}`); - console.log(` Actual maxWorkers: ${this.maxWorkers}`); - console.log(` navigator.hardwareConcurrency: ${navigator.hardwareConcurrency}`); } /** @@ -491,29 +486,17 @@ export const WebWorkerPoolUtils = { * Create a worker pool using GitNexus configuration */ async createWorkerPool(options: Partial = {}): Promise { - console.log('🔧 WebWorkerPoolUtils: Loading config and calculating workers...'); - // Import config loader dynamically to avoid circular dependencies const { ConfigLoader } = await import('../config/config-loader.ts'); const { calculateWorkerCount } = await import('./worker-calculator.ts'); - console.log('🔧 WebWorkerPoolUtils: Imports loaded, getting config...'); const config = await ConfigLoader.getInstance().loadConfig(); - console.log('🔧 WebWorkerPoolUtils: Config loaded, calculating worker count...'); const workerCalc = await calculateWorkerCount(config); - console.log('🔧 WebWorkerPoolUtils: Worker calculation complete:', workerCalc.workerCount); console.log(''); // Empty line for better readability console.log('🔧 GitNexus Worker Pool Initialization'); console.log('='.repeat(50)); - console.log('🔧 WebWorkerPoolUtils: Creating WebWorkerPool with options:', { - maxWorkers: workerCalc.workerCount, - timeout: config.processing.parallel.workerTimeoutMs, - name: 'GitNexusWorkerPool', - ...options - }); - const workerPool = new WebWorkerPool({ maxWorkers: workerCalc.workerCount, timeout: config.processing.parallel.workerTimeoutMs, @@ -521,8 +504,6 @@ export const WebWorkerPoolUtils = { ...options }); - console.log('🔧 WebWorkerPoolUtils: WebWorkerPool created, maxWorkers:', workerPool.maxWorkersCount); - console.log('='.repeat(50)); console.log('✅ Worker pool created successfully'); console.log(''); // Empty line for better readability