3 months ago
72d2d5dHigh 1: Legacy embedding migration no longer deadlocks. The migration
recreates the embeddings table as BLOB (dropping unconvertible TEXT rows)
instead of throwing, so `openez reindex` can actually open the DB and
rebuild.
High 2: Old workspaces with completed graphs are invalidated on registry
migration (graph_generation set to -1), forcing a rebuild that picks up
parser behavior changes. Parser version bumped from ts-morph-v1 to
oxc-v2 to invalidate stale parse caches.
High 3: codeQuery() now accepts an optional ensureGraph callback so direct
consumers of @openez-graph/core get lazy graph building without the
core→indexer circular dependency. MCP passes ensureGraphReady through.
High 4: Cross-process graph lock uses atomic SQLite compare-and-set
(tryClaimGraphBuild) instead of a process-local Map. Web/MCP/CLI in
separate processes can no longer duplicate graph builds.
Medium 5: parserVersionFor() now returns fallback-v1 for tree-sitter and
regex parsers (not just the fallback parser), so native-unavailable cache
rows match the expected version and are reused.
Medium 6: Oxc parser discovers nested arrow functions
(`const inner = () => {}`) as graph symbols. Duplicate nested names are
qualified with the parent (e.g. `outer.helper`) to avoid graph node
collisions.
Medium 7: Root tsc --noEmit passes. Added @types/bun to devDeps and
included "bun" in tsconfig types. Fixed test type errors.
All gates: 174 pass/1 skip/0 fail, turbo typecheck 8/8, root tsc pass,
format check pass, web+cli build pass, MCP smoke test pass.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>Parent4b078a9