Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
9a515c3
fix(dead-code): a method a framework calls by decorator or by name is…
colbymchenry Oct 7, 2026
787f75f
fix(go): a type written bare links its own package's, not a namesake …
colbymchenry Oct 7, 2026
dd70646
fix(react-router): read route tables another file hands the router (#…
colbymchenry Oct 7, 2026
fe95183
fix(go): satisfying an interface counts the methods embedding brings …
colbymchenry Oct 7, 2026
4040eab
fix(cpp): a base class links to the class C++ name lookup finds, not …
colbymchenry Oct 7, 2026
5ace306
fix(kernel): a Go value like `wm.new` or `raft.None` keeps its functi…
colbymchenry Oct 7, 2026
31c3328
fix(sync): a Liquid section or snippet reference links its file when …
colbymchenry Oct 7, 2026
73797bf
test(sync): compare synced graphs with an index rebuilt from scratch …
colbymchenry Oct 7, 2026
d8a7f86
fix(go): an unaliased import is also known by the name goimports assu…
colbymchenry Oct 7, 2026
e0bbb66
fix(dead-code): a type that declare module or declare global merges o…
colbymchenry Oct 7, 2026
22a7ba8
fix(c,cpp): a file named like a test is visible to the code that incl…
colbymchenry Oct 7, 2026
c54b726
fix(react-router): a JSX index route is the page at its parent's addr…
colbymchenry Oct 7, 2026
8f0766c
fix(resolution): a large minified JS bundle no longer stalls resolvin…
colbymchenry Oct 7, 2026
855eca2
fix(go): a call through an interface reaches a method the struct gets…
colbymchenry Oct 7, 2026
388b252
fix(sync): a route links the module it lazily loads when the module a…
colbymchenry Oct 7, 2026
f261fda
fix(js,ts): `import { default as X }` is the module's default import …
colbymchenry Oct 7, 2026
19f91e2
fix(frameworks): a framework resolves only references written in its …
colbymchenry Oct 7, 2026
9d07864
fix(cpp): a class keeps its namespaces and enclosing class past code …
colbymchenry Oct 7, 2026
3bf6b8f
fix(go): a type in a signature or composite literal links a type, nev…
colbymchenry Oct 7, 2026
d348d30
fix(sync): a navigation call links its route when the route appears l…
colbymchenry Oct 7, 2026
2f2afea
fix(go): a defined type implements the interfaces its methods satisfy…
colbymchenry Oct 7, 2026
61f8b09
fix(cpp): a receiver declared as a std or other outside type with a l…
colbymchenry Oct 7, 2026
ed199e6
fix(go): a type alias `type A = B` is indexed and links to the type i…
colbymchenry Oct 7, 2026
6621926
merge: reconcile upstream through ed199e60
bompus Oct 7, 2026
e8defd6
fix: address reconciliation import and receiver findings
bompus Oct 7, 2026
f707140
fix(resolve): mask raw strings before C++ receiver scans
bompus Oct 7, 2026
a23a6bb
fix(resolve): persist route reconciliation atomically
bompus Oct 7, 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
52 changes: 52 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Follow [@getcodegraph](https://x.com/getcodegraph) on X for updates.

## About this fork

This is **bompus/codegraph**, a fork of [colbymchenry/codegraph](https://github.com/colbymchenry/codegraph). Its default branch, `fork/consolidated`, contains upstream `main` through [`02d22aeb`](https://github.com/colbymchenry/codegraph/commit/02d22aebedd7fa70ddfe8b368c43bb24a80bdf0a) (after v1.6.2) plus the fork's own work, and it takes upstream changes as they land. Changes that suit upstream are also offered there as pull requests.
This is **bompus/codegraph**, a fork of [colbymchenry/codegraph](https://github.com/colbymchenry/codegraph). Its default branch, `fork/consolidated`, contains upstream `main` through [`ed199e60`](https://github.com/colbymchenry/codegraph/commit/ed199e60d8f1aed5baf73836366ef0a6f7838d11) (after v1.6.2) plus the fork's own work, and it takes upstream changes as they land. Changes that suit upstream are also offered there as pull requests.

The fork publishes no releases. The install scripts, npm package, badges and `codegraph upgrade` further down this page install **upstream's** releases. To run the fork, build it from source (below).

Expand All @@ -76,7 +76,7 @@ Then run `codegraph init` in each project, as in [Get Started](#get-started). In

### What the fork adds

Compared with upstream `main` at `02d22aeb` (after v1.6.2). Each item here and in the dispatch and framework lists below was checked against upstream's tree at that commit.
Compared with upstream `main` at `ed199e60` (after v1.6.2). Each item here and in the dispatch and framework lists below was checked against upstream's tree at that commit.

| Feature | Upstream | Fork | What it does |
|---|:-:|:-:|---|
Expand Down Expand Up @@ -113,6 +113,8 @@ C# property accessors and expression-bodied properties contribute calls and refe

C# field and property initializers retain their calls and references under the member that owns them. Target-typed `new()` resolves relative declared types through enclosing namespaces and honors `global::` qualification without requiring a redundant `using`. VB.NET resolves typed receivers, enclosing and inherited members, and field or property reads through values and Shared types without choosing unrelated project declarations. Names beginning with keywords, such as `SharedCache`, `Dimension` and `NewItem`, retain their declarations.

The native resolver includes upstream's Go import-name assumptions, type-position checks, alias method forwarding and embedded interface method sets. Chained Go calls follow declared return types at each fluent step; an unproven receiver stays unresolved instead of borrowing an unrelated method by name. C++ bases use enclosing-scope directives, parent-scope lookup and translation-unit visibility; included test-named headers remain eligible, while declared external library receivers avoid unrelated project methods. Incremental sync retries newly available Liquid targets, lazy route modules and navigation destinations. Navigation in an imported route-table file also survives removing and restoring its destination. Route-table nodes and their references commit together, so a failed reference write can be retried without leaving an incomplete route. React layout links exclude Vue and Angular routes. C++ receiver declaration scans exclude multiline raw-string contents.

Go interfaces link named embedded interfaces and aliases that resolve to interfaces. Named scalar or struct terms, unions, underlying-type constraints and basic types are not supertypes. Package-qualified embeddings stay in their imported package. Go imports follow the nearest indexed module and the longest matching module path, including module changes during incremental sync. Unexported receivers and embedded methods stay in their declaring package. Dart imports, exports and part directives follow their library URIs and visibility rules. Library directive reads stay inside the indexed project, including resolved symlink targets. Calls through import prefixes, annotations and member chains follow the visible declaration and written receiver types, including explicit generic lookup types. Parameters and locals shadow bare calls. Top-level and field initializers contribute calls; const constructors, redirecting factories and annotated members retain their declarations and dartdoc. Getter reads become calls only when the receiver type reaches that getter and no nearer field in the visible class hierarchy overrides it; enum extensions and type-position references participate in resolution. Rust enum-variant values retain their enum references.

Named JavaScript and TypeScript object literals own their function members, including local objects and classic-script global assignments. Member calls follow the visible object; loop-local objects stay within their scope. Destructured member calls resolve across lines while preserving the source binding at the destructure declaration; unrelated bare names stay unresolved. Vue template expressions contribute calls to script bindings while preserving component ownership. Encoded attribute expressions retain their original source positions, and template-local bindings stay within their scope.
Expand Down
Loading
Loading