Three bug fixes for edge cases that were causing silent failures or broken outputs.
What's fixed
Obsidian tags with special characters (#690)
Community labels containing ., &, (, ) were producing invalid Obsidian tags that broke Dataview queries. Tags are now sanitized to [a-zA-Z0-9_\-/] only before being written to the vault.
SvelteKit / Nuxt / NestJS path aliases (#691)
tsconfig.json path aliases defined in extended configs (via the `extends` field) were silently dropped. The alias resolver now follows the full extends chain, so `@/components` resolves correctly even when the alias lives in a base config two levels up.
Svelte template-layer dynamic imports (#692)
Tree-sitter only parses the script block of .svelte files. Markup-level dynamic imports like `{#await import('./Modal.svelte')}` in the template were invisible to the graph. A regex pass now runs after AST extraction to catch these.
Recursion crash on large codebases (#695)
Files with deeply nested AST trees (generated code, minified output, some auto-generated schemas) could hit Python's default 1000-frame recursion limit and crash the whole extraction run. The limit is now raised to 10,000 at startup and in each worker process. A `_safe_extract` wrapper catches any file that still overflows and skips it with a clear warning — the rest of the run completes normally.
How to get it
pip install --upgrade graphifyy
or
uvx graphifyy