highlight() used Promise.race with a 10s timeout, but the losing semantic phase promise continued running 25 WASM micro-batches, saturating the event loop and degrading all subsequent operations (find() going from ~200ms to ~10,000ms). Add AbortController to highlight() so the semantic phase stops immediately on timeout or error. Pass abort signal through embedBatch() → EmbeddingManager → micro-batch loop. Also add defensive hardening: - CandleEmbeddingEngine: try/catch around WASM calls resets engine state on failure so next call triggers re-initialization - WASMEmbeddingEngine: initialize() now checks underlying Candle engine state, not just its own flag, completing the recovery chain |
||
|---|---|---|
| .. | ||
| AssetLoader.ts | ||
| CandleEmbeddingEngine.ts | ||
| EmbeddingPostProcessor.ts | ||
| index.ts | ||
| modelLoader.ts | ||
| types.ts | ||
| WASMEmbeddingEngine.ts | ||
| wasmLoader.ts | ||
| WordPieceTokenizer.ts | ||