mirror of
https://github.com/safishamsi/graphify.git
synced 2026-07-13 02:47:00 +00:00
b83086297f
extract.py: clamp ProcessPoolExecutor max_workers to 61 on Windows (issue #1298). Python's ProcessPoolExecutor hard-caps at 61 on Windows via WaitForMultipleObjects; >61-core machines crashed on AST extraction. Clamp applied after all input paths (auto-compute, GRAPHIFY_MAX_WORKERS, --max-workers) to cover all three. build.py: skip ghost-merge when two AST nodes share (basename, label) key (issue #1257). When same-named symbols appear in same-named files across directories (e.g. two render() in two index.ts), last-writer-wins produced an arbitrary canonical node and mis-pointed all edges. Now tracked in _loc_collisions; ambiguous keys are skipped in Pass 2, leaving the ghost intact rather than merging into the wrong node. __main__.py: ignore OSError on unreadable .graphify_version probes (issue #1299). On restricted-permission installs or network mounts, .exists()/.read_text() raised PermissionError and crashed every graphify query/explain/path call at startup. All three FS probes now wrapped in try/except OSError: return. prs.py: resolve claude.cmd on Windows in prs.py claude-cli backend (issue #1288). The _call_llm and _call_claude_cli paths were already fixed; prs.py had the same bare ["claude", ...] call that fails on Windows npm installs with WinError 2. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>