- Changed confusing 'dtype' to 'precision' for model variant selection
- Fixed Q8 quantized model loading in transformers.js pipeline
- Added proper model file detection for q8 vs fp32 models
- Updated all references across codebase to use new parameter
- Maintains backward compatibility while providing clearer API
Changed default dtype from q8 to fp32 across all embedding implementations:
- embedding.ts: Default dtype changed to fp32
- worker-embedding.ts: Use fp32 for consistency
- universal-memory-manager.ts: Use fp32 for consistency
- lightweight-embedder.ts: Use fp32 for consistency
- hybridModelManager.ts: Use fp32 for all configurations
This ensures we use the exact same model (model.onnx) everywhere,
maintaining data compatibility and avoiding 404 errors for quantized models.
CRITICAL ARCHITECTURAL FIX:
- Change node-worker strategy to node-direct for ONNX compatibility
- Use single model instance on main thread instead of worker pool
- Prevents HandleScope V8 API locking errors in Node.js 22/24
- Reduces memory usage from 360MB+ to ~90MB (single model vs 4 workers)
- Maintains async operations using native transformers.js capabilities
Root Cause: ONNX runtime cannot properly handle V8 isolate context
switching between worker threads, causing fatal HandleScope errors.
Solution: Keep ONNX operations in main V8 isolate while preserving
all existing async functionality and performance.
Tested: Multiple concurrent addNoun operations work without errors.