Parse Python snippets whose path is still .ipynb, treat the extract cache as an LRU, and stop expecting skipped notebooks to lack File nodes.
Co-authored-by: Cursor <cursoragent@cursor.com>
Join cells so tree-sitter rows match segment maps, remap CFG and
scope captures from 1-based extract lines, and highlight .ipynb as JSON.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extract .ipynb code cells in-process (Vue-style) and parse them with the
existing Python provider so notebook functions and imports join the graph
without executing kernels. Fixes#3371.
Co-authored-by: Cursor <cursoragent@cursor.com>