@comfanion/workflow 4.36.11 → 4.36.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/cli.js CHANGED
@@ -314,23 +314,42 @@ program
314
314
  // Copy .opencode structure (fresh, no old files)
315
315
  await fs.copy(OPENCODE_SRC, targetDir);
316
316
 
317
- // Copy and install vectorizer fresh
317
+ // Copy vectorizer source files (always copy, install only if enabled)
318
318
  if (await fs.pathExists(VECTORIZER_SRC)) {
319
- spinner.text = 'Installing vectorizer...';
320
319
  const newVectorizerDir = path.join(targetDir, 'vectorizer');
321
320
  await fs.ensureDir(newVectorizerDir);
322
321
  await fs.copy(path.join(VECTORIZER_SRC, 'index.js'), path.join(newVectorizerDir, 'index.js'));
323
322
  await fs.copy(path.join(VECTORIZER_SRC, 'package.json'), path.join(newVectorizerDir, 'package.json'));
324
323
 
325
- // Always install vectorizer dependencies fresh
326
- try {
327
- execSync('npm install --silent', {
328
- cwd: newVectorizerDir,
329
- stdio: 'pipe',
330
- timeout: 120000
331
- });
332
- } catch (e) {
333
- // Non-fatal, will show warning below
324
+ // Install dependencies only if vectorizer is enabled
325
+ if (config.vectorizer_enabled) {
326
+ spinner.text = 'Installing vectorizer dependencies...';
327
+ try {
328
+ // Show progress during npm install
329
+ const steps = [
330
+ 'Installing vectorizer dependencies...',
331
+ 'Downloading @xenova/transformers (~50MB)...',
332
+ 'Installing vectordb...',
333
+ 'Installing glob...',
334
+ 'Finalizing vectorizer setup...'
335
+ ];
336
+ let stepIndex = 0;
337
+ const progressInterval = setInterval(() => {
338
+ stepIndex = (stepIndex + 1) % steps.length;
339
+ spinner.text = steps[stepIndex];
340
+ }, 3000);
341
+
342
+ execSync('npm install', {
343
+ cwd: newVectorizerDir,
344
+ stdio: 'pipe',
345
+ timeout: 180000
346
+ });
347
+
348
+ clearInterval(progressInterval);
349
+ spinner.text = 'Vectorizer installed!';
350
+ } catch (e) {
351
+ // Non-fatal, will show warning below
352
+ }
334
353
  }
335
354
  }
336
355
 
@@ -454,8 +473,10 @@ program
454
473
  const vectorizerInstalled = await fs.pathExists(path.join(targetDir, 'vectorizer', 'node_modules'));
455
474
  if (vectorizerInstalled) {
456
475
  console.log(chalk.green('✅ Vectorizer installed (fresh dependencies)'));
457
- } else {
476
+ } else if (config.vectorizer_enabled) {
458
477
  console.log(chalk.yellow('⚠️ Vectorizer: run `npx @comfanion/workflow vectorizer install`'));
478
+ } else {
479
+ console.log(chalk.gray('ℹ️ Vectorizer disabled (enable in config.yaml to use semantic search)'));
459
480
  }
460
481
  if (hadVectors) {
461
482
  console.log(chalk.green('✅ Vector indexes preserved'));
@@ -581,23 +602,45 @@ program
581
602
  spinner.text = 'Installing new version...';
582
603
  await fs.copy(OPENCODE_SRC, targetDir);
583
604
 
584
- // Copy new vectorizer source files
605
+ // Copy vectorizer source files (always copy, install only if enabled)
585
606
  if (await fs.pathExists(VECTORIZER_SRC)) {
586
- spinner.text = 'Installing vectorizer...';
587
607
  const newVectorizerDir = path.join(targetDir, 'vectorizer');
588
608
  await fs.ensureDir(newVectorizerDir);
589
609
  await fs.copy(path.join(VECTORIZER_SRC, 'index.js'), path.join(newVectorizerDir, 'index.js'));
590
610
  await fs.copy(path.join(VECTORIZER_SRC, 'package.json'), path.join(newVectorizerDir, 'package.json'));
591
611
 
592
- // Always install vectorizer dependencies fresh
593
- try {
594
- execSync('npm install --silent', {
595
- cwd: newVectorizerDir,
596
- stdio: 'pipe',
597
- timeout: 120000
598
- });
599
- } catch (e) {
600
- // Non-fatal, will show warning below
612
+ // Check if vectorizer is enabled in user's config
613
+ const vectorizerEnabled = /vectorizer:[\s\S]*?enabled:\s*true/i.test(configBackup);
614
+
615
+ // Install dependencies only if vectorizer is enabled
616
+ if (vectorizerEnabled) {
617
+ spinner.text = 'Installing vectorizer dependencies...';
618
+ try {
619
+ // Show progress during npm install
620
+ const steps = [
621
+ 'Installing vectorizer dependencies...',
622
+ 'Downloading @xenova/transformers (~50MB)...',
623
+ 'Installing vectordb...',
624
+ 'Installing glob...',
625
+ 'Finalizing vectorizer setup...'
626
+ ];
627
+ let stepIndex = 0;
628
+ const progressInterval = setInterval(() => {
629
+ stepIndex = (stepIndex + 1) % steps.length;
630
+ spinner.text = steps[stepIndex];
631
+ }, 3000);
632
+
633
+ execSync('npm install', {
634
+ cwd: newVectorizerDir,
635
+ stdio: 'pipe',
636
+ timeout: 180000
637
+ });
638
+
639
+ clearInterval(progressInterval);
640
+ spinner.text = 'Vectorizer installed!';
641
+ } catch (e) {
642
+ // Non-fatal, will show warning below
643
+ }
601
644
  }
602
645
  }
603
646
 
@@ -668,10 +711,13 @@ program
668
711
  console.log(chalk.yellow('⚠️ Plugin deps: run `cd .opencode && bun install`'));
669
712
  }
670
713
  const vectorizerInstalled = await fs.pathExists(path.join(targetDir, 'vectorizer', 'node_modules'));
714
+ const vectorizerEnabled = /vectorizer:[\s\S]*?enabled:\s*true/i.test(configBackup);
671
715
  if (vectorizerInstalled) {
672
716
  console.log(chalk.green('✅ Vectorizer reinstalled (fresh dependencies).'));
673
- } else {
717
+ } else if (vectorizerEnabled) {
674
718
  console.log(chalk.yellow('⚠️ Vectorizer: run `npx @comfanion/workflow vectorizer install`'));
719
+ } else {
720
+ console.log(chalk.gray('ℹ️ Vectorizer disabled (enable in config.yaml to use semantic search)'));
675
721
  }
676
722
  if (hasVectors) {
677
723
  console.log(chalk.green('✅ Vector indexes were preserved.'));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comfanion/workflow",
3
- "version": "4.36.11",
3
+ "version": "4.36.13",
4
4
  "description": "Initialize OpenCode Workflow system for AI-assisted development with semantic code search",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "3.0.0",
3
- "buildDate": "2026-01-24T15:20:27.146Z",
3
+ "buildDate": "2026-01-24T15:30:55.138Z",
4
4
  "files": [
5
5
  "config.yaml",
6
6
  "FLOW.yaml",