Referenced by2
Labels2

Referencing ideas

IdeaStatusTagsSummaryKatz
cutoverdoneNative engine is required for CLI, MCP, and the extension IndexService path ( no `REQLAN_ANALYTICAL_ENGINE=js` escape hatch ). Order: golden parse / extract → headless CLI `analyse` / `search` / `export` → MCP → extension via platform VSIX ( host-matching napi `.node` required ). Shared [bases.base] `.reqlan` DB is schema v4 rusqlite; fixtures verify reopen compatibility. The default editor LSP is [lsp_rust.language_server_rust]. Langium remains only as the transitional `node` engine fallback and dual-parser oracle ( [parser_align] ).0.118
native_bridgein-progressThe Rust engine is the analytical core ( parse, index, search, export, typed queries, git-dates, overview coverage, barrel plan ) — not an optional addon. `@reqlan/analytical` is a typed napi facade ( specta `generated.ts` ) plus thin Node helpers ( `createBase`, path utils, `SqliteIndexStore` wrappers over typed napi ). It does not depend on Langium, `@reqlan/language`, or Zustand. Webview-only helpers ( search highlight, filter labels, file-treatment, context signals / model, graph physics ) live in the extension package. Interactive HTML JS stays in `crates/reqlan-export/assets`. Native owns: parse-for-index, persist, query, search, export execution, IndexService / WorkspaceIndex sync, and the index lifecycle FSM + status snapshot via `NativeWorkspaceIndex` + `NativeSqlDb`. The FSM ( `opening` / `syncing` / `ready` / `error` ), counts, in-memory sync progress / cancel, last error, file-index issues ( cap 500 ), and the document-update / workspace-change rings ( cap 50 ) live in `WorkspaceIndexRuntime`; TS reads them through `statusSnapshot()`. Durable diagnostics persist in `index-diagnostics.sqlite`. Consumers: [cli.cli_package] and MCP import `@reqlan/analytical/core` so they never load Langium; the extension host uses the per-target VSIX ( [distribution.vsix_export], [distribution.extension_host_target] ). The host-matching `.node` is required at runtime; there is no sql. js fallback.0.290

Reference labels

cutover, native_bridge