Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
5512841
fix(extract): extract Kotlin enum entries as nodes with case_of edges
ivanzhl Jul 8, 2026
6888818
fix(extract): skip builtin-global receiver types in TS/JS member-call…
safishamsi Jul 8, 2026
7460034
Release 0.9.10
safishamsi Jul 8, 2026
123dbab
test(extract): cover builtin static-call shape (Date.now()) for #1726
safishamsi Jul 8, 2026
6bf0f40
fix(merge-graphs): give each input a distinct repo tag so same-stem n…
safishamsi Jul 8, 2026
8b62ef4
fix(uninstall): remove graphify hook/section from Claude local-only f…
TPAteeq Jul 8, 2026
70c790e
feat(extract): add --code-only to index code without an LLM key on a …
safishamsi Jul 8, 2026
9def7d2
refactor(main): extract install/uninstall subsystem into graphify/ins…
TPAteeq Jul 8, 2026
253f7df
refactor(extract): migrate 18 bespoke language extractors to extracto…
TPAteeq Jul 8, 2026
c7f7f8a
refactor(export): split HTML and graph-DB exporters into graphify/exp…
TPAteeq Jul 8, 2026
cdd46c8
refactor(extract): migrate verilog and markdown extractors to extract…
TPAteeq Jul 8, 2026
e147763
refactor(extract): extract symbol-resolution subsystem into extractors/
TPAteeq Jul 8, 2026
c05a4cc
refactor(main): move install/platform CLI dispatch into install.dispa…
TPAteeq Jul 8, 2026
5edb206
build: package the new graphify.exporters subpackage
TPAteeq Jul 8, 2026
d48b06e
refactor(extract): extract the _extract_generic tree-sitter engine in…
TPAteeq Jul 8, 2026
0083570
refactor(extract): migrate pascal, objc, and julia extractors to extr…
TPAteeq Jul 8, 2026
b058e71
refactor(main): move the command dispatch into graphify/cli.py
TPAteeq Jul 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

Full release notes with details on each version: [GitHub Releases](https://github.com/safishamsi/graphify/releases)

## 0.9.10 (2026-07-08)

- Fix: TS/JS member calls on a builtin-typed receiver no longer collapse onto a same-named user symbol (#1726). `_resolve_typescript_member_calls` matched a receiver's type to a definition by casefolded label, so `x: Date; x.getTime()` bound the caller to a user `class DATE`/`const DATE` in another file — inventing hundreds of phantom `references` edges and a false god node. Builtin-global receiver types (`Date`, `Promise`, `Map`, ...) are now skipped, mirroring the cross-file call guard; genuine user types are unaffected.
- Fix: never bind a cross-file `calls` edge to a definition in a different language family (#1718, thanks @edinaldoof). Name-only matching resolved a TSX callback passed by name to a same-named Kotlin method (and a Python call to a Kotlin fun) — phantom edges the spec forbids. Candidates are now filtered by interop family (JVM, native C-family, JS/TS module graph, ...); unknown families stay permissive.
- Fix: an ambiguous legacy-stem alias in `build_merge` no longer silently merges two unrelated files (#1713, thanks @mallyskies). The `#1504` old-stem alias (`ping.h`/`ping.php` → bare `ping`) resolved by hash-order, riding a dangling edge onto an arbitrary same-named file. Aliases are now committed only when exactly one file claims them; a salted `.h`/`.cpp` file node is recognized as its own claimant so a genuine collision stays ambiguous (and dropped) instead of picking a wrong winner.
- Fix: inline base-class stubs are tagged with `origin_file` (#1707, thanks @mallyskies). Five inheritance handlers built cross-file base-class stubs without `origin_file`, so same-named bases across files collapsed onto one shared stub that could then merge with an unrelated real class (218 wrong `inherits` edges observed). They now route through `ensure_named_node`, which sets the tag.
- Fix: Java enum constants are extracted as nodes with `case_of` edges to their enum (#1719, thanks @ivanzhl). Closes the Java half of #1700; `affected ErrorCode` / "where is ErrorCode.X used" now works for Java.
- Fix: `graphify` rebuilds recover from a deleted hook working directory instead of crashing (#1703, thanks @FranciscoJSBarragan). A detached git hook can inherit a CWD that no longer exists; the rebuild now recovers via `GRAPHIFY_REPO_ROOT` or fails cleanly instead of raising `FileNotFoundError`.
- Feat: the semantic cache is checkpointed per chunk so an interrupted extraction resumes instead of restarting (#1715, thanks @A-Levin). Each completed chunk is unioned into the cache immediately (opt out with `GRAPHIFY_NO_INCREMENTAL_CACHE`); the final write still overwrites authoritatively.
- Docs: `SECURITY.md` no longer claims stdio-only now that an opt-in `--transport http` (binds `127.0.0.1` by default) exists (#1714, thanks @Thizeidler); added tests for `GRAPHIFY_MAX_GRAPH_BYTES` parsing and corrected its unit docstring to binary MiB/GiB (#1722, thanks @Cekaru).

## 0.9.9 (2026-07-07)

- Fix: `graphify explain` resolves an exactly-typed punctuated label symmetrically against `norm_label` (#1704). The search term tokenized on `\w+` ("blockStream.ts" -> "blockstream ts", space where the '.' was) while a node's stored `norm_label` keeps punctuation ("blockstream.ts"). The verbatim case was already rescued by the tokenized-label tier, but that broke if a node's `label` and `norm_label` diverged; a punctuation-preserving `norm_query` is now matched against `norm_label` across the exact/prefix/substring tiers (and fed to the trigram prefilter), so it is robust by construction.
Expand Down
Loading