--- name: reference_vex_search description: "vex (code-search CLI) установлен и проиндексирован; правило когда vex, когда ast-index" metadata: node_type: memory type: reference originSessionId: a02c76bd-13fd-4ebe-b133-375f6c469212 --- vex v1.11.0 — гибридный поиск по коду (vector+index), установлен в `C:\Users\Home\bin\vex.exe` (в пользовательском PATH; в новых терминалах — просто `vex`, в уже открытых сессиях PATH не подхвачен — звать по полному пути). Проект BQ-System проиндексирован: структурный + **semantic** (16360 символов, embeddings enabled). **Когда что** (подробно — `.claude/rules/search-tools.md`, закоммичено f2b0db4): - **ast-index** — дефолт: символ по имени, **usages/callers**, outline. usages/callers по JS — ТОЛЬКО ast-index (vex их пропускает: чистый JS не binder-язык; `vex usages "audit"` → пусто, `ast-index` → все 10). - **vex** — `vex search "..." --semantic`, `vex similar "X"` (по смыслу), `vex pattern --lang js '...'` (AST), `vex duplicates`, `vex show "X"` (компактное тело). - Grep всё ещё запрещён (см. [[reference_sqlite_node]]). **Гочи:** - Модель MiniLM (~86 МБ) при прерванном скачивании бьётся → `failed to load ... Protobuf parsing failed`. Фикс: `Remove-Item C:\Users\Home\AppData\Local\vex\embeddings -Recurse -Force`, затем `vex index --semantic`. Качать в форграунде (фоновый процесс прервался на середине). - После коммитов HEAD сдвигается → vex пишет "index may be stale" → `vex update` (инкрементально, semantic сохраняется из манифеста). - `search`/`usages`/`show` берут индекс текущей папки и НЕ принимают `--path`; `pattern` требует `--lang`+`--path`. - settings.json: правило `"Bash(vex:*)"` пользователь добавляет САМ — Claude не может сам себе выдавать права (классификатор блокирует self-modification).