Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
192 commits
Select commit Hold shift + click to select a range
a8c933c
docs: plan CodeGraphy performance investigation
joesobo Jun 22, 2026
c6d399b
test: add CodeGraphy monorepo performance harness
joesobo Jun 22, 2026
a1dd892
perf: reuse cached analysis for scoped refreshes
joesobo Jun 22, 2026
cb7d859
perf: emit phase timings for core indexing
joesobo Jun 22, 2026
1de0098
perf: persist canonical Graph Cache rows
joesobo Jun 22, 2026
03290a6
perf: reuse content during index analysis
joesobo Jun 22, 2026
9e3294e
perf: speed up Godot class name indexing
joesobo Jun 22, 2026
595aa15
perf: skip TypeScript alias config file scans
joesobo Jun 22, 2026
6743acb
docs: record warm Graph Cache query metric
joesobo Jun 22, 2026
67c3f2f
perf: speed visible graph filtering
joesobo Jun 22, 2026
09d1395
perf: measure vscode graph view latency
joesobo Jun 22, 2026
7253e52
perf: skip settled graph cooldown ticks
joesobo Jun 23, 2026
759703b
perf: pass constant arrow settings to graph renderer
joesobo Jun 23, 2026
fd3125b
perf: memoize graph viewport surface
joesobo Jun 23, 2026
27ef7ed
perf: compile visible graph legend matchers
joesobo Jun 23, 2026
62d25bd
perf: skip unchanged graph control echoes
joesobo Jun 23, 2026
63176a7
perf: cache recent visible graph derivations
joesobo Jun 23, 2026
4b7ea2c
perf: cache recent styled graph stages
joesobo Jun 23, 2026
1c3d58c
perf: render edge scope changes immediately
joesobo Jun 23, 2026
50b27a9
test: report webview graph toggle deltas
joesobo Jun 23, 2026
64a53d3
docs: record rejected startup timing experiment
joesobo Jun 23, 2026
819b817
test: measure graph view startup phases
joesobo Jun 23, 2026
00cb56a
perf: lazy-load graph 3d runtime
joesobo Jun 23, 2026
763b119
perf: skip duplicate graph payload replay
joesobo Jun 23, 2026
a8a0fd3
perf: combine visible graph filter matchers
joesobo Jun 23, 2026
1f369d2
test: mark graph view command startup timing
joesobo Jun 23, 2026
63742b7
test: record graph frame lifecycle timing
joesobo Jun 23, 2026
d1838aa
perf: skip pre-bootstrap duplicate graph payloads
joesobo Jun 23, 2026
2112496
perf: defer hidden startup graph derivation
joesobo Jun 23, 2026
00b7465
docs: record rejected startup bootstrap experiment
joesobo Jun 23, 2026
5b47ae3
perf: trace webview message delivery
joesobo Jun 23, 2026
611ffd0
perf: coalesce graph index progress messages
joesobo Jun 23, 2026
b0da0bf
perf: skip duplicate ready replay during first analysis
joesobo Jun 23, 2026
530d3e7
perf: trace refresh state send reasons
joesobo Jun 23, 2026
82ce2e0
perf: skip incremental refresh settings replay
joesobo Jun 23, 2026
454e338
perf: trace graph analysis requests
joesobo Jun 23, 2026
83f7a5e
perf: keep incremental refresh behind first load
joesobo Jun 23, 2026
cef9deb
perf: skip discovery during cached graph replay
joesobo Jun 23, 2026
9c4368e
perf: speed up material icon legend matching
joesobo Jun 23, 2026
c9a0ac4
perf: defer gitignore probe for stale graph replay
joesobo Jun 23, 2026
3c4ba01
perf: warm graph cache before first replay
joesobo Jun 23, 2026
2da7950
perf: reuse discovery for live file updates
joesobo Jun 23, 2026
88d8ae6
perf: route incremental analysis work
joesobo Jun 23, 2026
220f610
perf: skip covered refresh graph rebuilds
joesobo Jun 23, 2026
d855c0b
perf: tighten saved-file refresh debounce
joesobo Jun 23, 2026
3fee42b
perf: cache TypeScript alias config
joesobo Jun 23, 2026
0f2b2ad
perf: ignore generated pending graph refreshes
joesobo Jun 23, 2026
36cec58
perf: harden graph freshness metrics
joesobo Jun 23, 2026
c65b46c
perf: keep fresh live-update measurements clean
joesobo Jun 23, 2026
8a2be30
docs: record startup ordering perf result
joesobo Jun 23, 2026
186532f
perf: skip metric-only group publish
joesobo Jun 23, 2026
13f95dc
perf: shortcut metric-only reuse checks
joesobo Jun 23, 2026
7ed1183
perf: patch metric-only graph updates
joesobo Jun 23, 2026
cb4122b
perf: avoid nonvisual metric recompute
joesobo Jun 23, 2026
16c5c13
perf: skip incremental group preparation
joesobo Jun 23, 2026
f7f6ccf
perf: skip incremental freshness scan
joesobo Jun 23, 2026
dbb1ac3
test: align extension node mocks
joesobo Jun 23, 2026
37879f8
perf: patch metric-only refresh graphs
joesobo Jun 23, 2026
0fa0d3d
perf: warm cached analysis path
joesobo Jun 23, 2026
0588d87
perf: tighten live update refresh latency
joesobo Jun 23, 2026
1bee20d
perf: skip static broadcasts for metric patches
joesobo Jun 23, 2026
f944363
perf: defer metric metadata persistence
joesobo Jun 23, 2026
4c32840
perf: dedupe editor-save refreshes
joesobo Jun 23, 2026
281d7da
docs: record saved debounce experiment
joesobo Jun 23, 2026
008b486
perf: skip indexed refresh settings reload
joesobo Jun 23, 2026
b41c246
test: report post-save live update latency
joesobo Jun 23, 2026
97f5836
perf: skip duplicate ready graph replay
joesobo Jun 23, 2026
a76963a
docs: record scoped matcher experiment
joesobo Jun 23, 2026
87b8f05
docs: record disabled symbol scope experiment
joesobo Jun 23, 2026
78a2726
perf: fast-path combined filter globs
joesobo Jun 23, 2026
25e0393
perf: fast-path single glob matchers
joesobo Jun 23, 2026
18e190a
perf: hydrate graph view settings before bootstrap
joesobo Jun 23, 2026
442d4ba
perf: fast-path stale cache freshness checks
joesobo Jun 23, 2026
0ccb410
perf: keep loaded refreshes incremental
joesobo Jun 23, 2026
bd23c06
perf: prioritize edits over background sync
joesobo Jun 23, 2026
0a1eaba
perf: precompile scoped symbol file matchers
joesobo Jun 23, 2026
9aa7ee4
perf: skip unconstrained legend rule checks
joesobo Jun 23, 2026
2302037
perf: defer stale cache background sync
joesobo Jun 23, 2026
8986caf
perf: cache built-in default groups
joesobo Jun 23, 2026
e7ccd67
perf: index material path rules by basename
joesobo Jun 23, 2026
f8e7e9f
perf: warm graph cache with sync loader
joesobo Jun 23, 2026
e730cd7
perf: cache graph edge target resolution
joesobo Jun 23, 2026
b045a45
perf: streamline visible graph edge scoping
joesobo Jun 23, 2026
8459cae
perf: include plugin filters in visible graph metric
joesobo Jun 23, 2026
e285639
perf: group combined glob matcher checks
joesobo Jun 23, 2026
d5158c5
perf: measure legend rule application
joesobo Jun 23, 2026
9ed2fd2
perf: skip irrelevant path legend candidates
joesobo Jun 23, 2026
11175a0
perf: render initial graph scope immediately
joesobo Jun 23, 2026
cfdcc09
perf: cache material file group matches
joesobo Jun 23, 2026
569ceba
test: summarize graph startup timing split
joesobo Jun 23, 2026
8e6cab6
test: stabilize glob matcher performance guard
joesobo Jun 23, 2026
e950612
chore: remove performance measurement harness
joesobo Jun 23, 2026
194ffa6
fix: keep graph physics active for positioned nodes
joesobo Jun 23, 2026
0b51fd6
fix: guard graph shortcuts against stale data
joesobo Jun 23, 2026
964c6c3
refactor: clear changed-code crap findings
joesobo Jun 23, 2026
cb3dc66
test: split changed tests for scrap
joesobo Jun 23, 2026
7ec7dc1
refactor: clear changed-code organize findings
joesobo Jun 23, 2026
e8ca30d
refactor: clear boundaries findings
joesobo Jun 23, 2026
1db6d4a
refactor: split mutation-heavy changed modules
joesobo Jun 23, 2026
c94a84a
refactor: split pipeline mutation sites
joesobo Jun 23, 2026
470c2e6
refactor: split diagnostics mutation sites
joesobo Jun 23, 2026
cb6fda5
refactor: split graph publish mutation sites
joesobo Jun 23, 2026
916db0a
refactor: split shared glob matcher mutation sites
joesobo Jun 23, 2026
ac07037
refactor: split refresh facade mutation sites
joesobo Jun 23, 2026
e85ea24
refactor: split core refresh mutation sites
joesobo Jun 23, 2026
28865b3
refactor: split graph viewport view mutation sites
joesobo Jun 23, 2026
c1c9b3d
refactor: split node legend rule mutation sites
joesobo Jun 23, 2026
5bf21ba
refactor: split webview ready message mutation sites
joesobo Jun 23, 2026
666d8a7
refactor: split graph provider refresh mutation sites
joesobo Jun 23, 2026
5f8df77
refactor: split graph data message handler mutation sites
joesobo Jun 23, 2026
fb7fedc
refactor: split webview message listener mutation sites
joesobo Jun 23, 2026
d238000
refactor: split visible graph scope mutation sites
joesobo Jun 23, 2026
03bee2f
refactor: split filtered graph hook mutation sites
joesobo Jun 23, 2026
7aa378c
refactor: split typescript alias config mutation sites
joesobo Jun 23, 2026
849d606
refactor: split graph viewport shell mutation sites
joesobo Jun 23, 2026
496e152
refactor: split discovery path matching mutation sites
joesobo Jun 23, 2026
814506c
refactor: split workspace refresh operation mutation sites
joesobo Jun 23, 2026
71a20a6
refactor: split godot text resource symbol mutation sites
joesobo Jun 23, 2026
94d0f83
refactor: split full index analysis mutation sites
joesobo Jun 23, 2026
76823a9
refactor: split graph provider analysis mutation sites
joesobo Jun 23, 2026
999aee6
refactor: split cached discovery mutation sites
joesobo Jun 23, 2026
42a8151
refactor: split core mutation-heavy modules
joesobo Jun 23, 2026
697111a
refactor: split remaining extension mutation sites
joesobo Jun 23, 2026
b863e83
fix: preserve file self call edges in scoped graph
joesobo Jun 23, 2026
2d4d512
test: kill scoped edge projection mutants
joesobo Jun 23, 2026
8ae9981
test: kill edge endpoint projection mutants
joesobo Jun 23, 2026
aa4a224
test: kill edge preference mutants
joesobo Jun 23, 2026
c20d200
test: kill edge selection mutants
joesobo Jun 23, 2026
bafb4ff
test: kill scoped node visibility mutants
joesobo Jun 23, 2026
7319761
test: kill scoped symbol matcher mutants
joesobo Jun 23, 2026
e149d53
test: kill refresh run mutants
joesobo Jun 24, 2026
b96c683
test: kill edge target cache mutants
joesobo Jun 24, 2026
7a7e7e4
test: kill changed-file refresh mutants
joesobo Jun 24, 2026
143eac7
test: kill refresh graph mutants
joesobo Jun 24, 2026
ec8cd31
test: kill refresh mode mutants
joesobo Jun 24, 2026
357d9b4
test: kill refresh snapshot mutants
joesobo Jun 24, 2026
df160c7
test: kill refresh state mutants
joesobo Jun 24, 2026
c5261ad
test: kill graph cache write mutants
joesobo Jun 24, 2026
0765807
test: kill graph cache save mutants
joesobo Jun 24, 2026
4059084
test: kill analysis facade mutants
joesobo Jun 24, 2026
27b5b5a
test: kill cached graph mutants
joesobo Jun 24, 2026
388bdc0
test: kill cached graph warmup error mutants
joesobo Jun 24, 2026
a236690
test: kill cached graph warmup input mutants
joesobo Jun 24, 2026
0f212c3
test: kill cached graph warmup helper mutants
joesobo Jun 24, 2026
5f8d98d
test: kill graph discovery mutants
joesobo Jun 24, 2026
72dba7b
test: kill index status mutants
joesobo Jun 24, 2026
785a426
test: kill plugin facade mutants
joesobo Jun 24, 2026
d9f0dd3
test: kill plugin state mutants
joesobo Jun 24, 2026
65176cb
test: kill refresh facade mutants
joesobo Jun 24, 2026
caab061
test: kill cache index mutants
joesobo Jun 24, 2026
8895ae0
test: kill cached discovery mutants
joesobo Jun 24, 2026
5b2c33a
test: kill cached gitignore mutants
joesobo Jun 24, 2026
c874ba4
test: kill pipeline state mutants
joesobo Jun 24, 2026
e521343
test: kill pipeline internal mutants
joesobo Jun 24, 2026
3b17e9d
test: cover refresh context fallback graph
joesobo Jun 24, 2026
3aaa556
test: kill refresh metrics mutants
joesobo Jun 24, 2026
a526210
test: kill refresh source mutants
joesobo Jun 24, 2026
765b793
test: kill refresh scope mutants
joesobo Jun 24, 2026
1796578
test: kill changed discovery mutants
joesobo Jun 24, 2026
8aebb9c
test: kill workspace discovery mutants
joesobo Jun 24, 2026
058b3b1
test: kill analysis scope mode mutants
joesobo Jun 24, 2026
8ea7d5b
test: kill changed files mode mutants
joesobo Jun 24, 2026
fa81bc5
test: kill gitignore metadata mode mutants
joesobo Jun 24, 2026
883a6de
test: kill plugin files mode mutants
joesobo Jun 24, 2026
3759c36
test: kill graph value equality mutants
joesobo Jun 24, 2026
a1dd8f8
test: kill graph collection equality mutants
joesobo Jun 24, 2026
b62f0b9
test: kill graph node equality mutants
joesobo Jun 24, 2026
479132c
test: kill graph payload equality mutants
joesobo Jun 24, 2026
5429b8a
test: kill graph equality mutants
joesobo Jun 24, 2026
6062055
test: kill group recompute mutants
joesobo Jun 24, 2026
3955f7d
test: kill metric update mutants
joesobo Jun 24, 2026
32fdb40
test: kill changed path metric mutants
joesobo Jun 24, 2026
9591c7d
test: kill metric patch mutants
joesobo Jun 24, 2026
52f3d12
test: kill graph publish status mutants
joesobo Jun 24, 2026
d2cb6e0
test: kill graph publish plan mutants
joesobo Jun 24, 2026
61a6519
test: kill graph publish message mutants
joesobo Jun 24, 2026
7f6fdea
test: kill graph publish entry mutants
joesobo Jun 24, 2026
7dc18ed
test: kill filtered graph reference cache mutants
joesobo Jun 24, 2026
028e892
test: kill filtered graph visible cache mutants
joesobo Jun 24, 2026
f6e7649
test: kill filtered graph cache key mutants
joesobo Jun 24, 2026
78d3583
test: kill filtered graph color result mutants
joesobo Jun 24, 2026
5b69631
test: kill filtered graph style result mutants
joesobo Jun 24, 2026
54b42db
test: kill filtered graph visible result mutants
joesobo Jun 24, 2026
933dc3d
test: kill graph metric update mutants
joesobo Jun 24, 2026
a2411e7
test: kill duplicate graph payload mutants
joesobo Jun 24, 2026
eee2fc4
test: kill graph bootstrap mutants
joesobo Jun 24, 2026
4839b75
test: kill graph payload handler mutants
joesobo Jun 24, 2026
a8a28b7
test: kill graph metrics handler mutants
joesobo Jun 24, 2026
163e119
test: kill discovery path matching mutants
joesobo Jun 24, 2026
60d50e7
test: kill discovery helper mutants
joesobo Jun 24, 2026
2b34ab5
test: kill discovery fast exclude mutants
joesobo Jun 24, 2026
536ebb9
fix: clean up graph cache sidecars
joesobo Jun 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .changeset/faster-godot-class-names.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@codegraphy-dev/plugin-godot": patch
---

Godot class-name indexing no longer runs the full GDScript parser for metadata-only `class_name` discovery. On the CodeGraphy monorepo benchmark, the Godot metadata slice helped move cold indexing from 104.67s to 37.27s and file analysis from 87,918ms to 23,352ms.
10 changes: 10 additions & 0 deletions .changeset/faster-graph-cache-and-filtering.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
"@codegraphy-dev/core": patch
"@codegraphy-dev/extension": patch
---

Large CodeGraphy workspaces now index, save, and filter graph data much faster. On the CodeGraphy monorepo benchmark, cold indexing improved from 214.04s to 17.28s, Graph Cache saves improved from 122,757ms to 10,904ms, and the Graph Cache shrank from 64,638,976 bytes to 18,153,472 bytes.

The same benchmark now projects the current Visible Graph in 12ms instead of 775ms. Folder-node projection improved from 1,369ms to 32ms, import-edge-off projection improved from 153ms to 7ms, and search projection improved from 781ms to 12ms.

Graph Cache replay also normalizes cached path separators before checking gitignore rules, so ignored files stay filtered across platforms during warm starts.
9 changes: 9 additions & 0 deletions .changeset/faster-graph-view-interactions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"@codegraphy-dev/extension": patch
---

Graph View interactions now stay responsive on large workspaces. In the VS Code benchmark, toggling the Imports Graph Scope row improved from a 2,983ms median to 188ms wall clock, with the browser-visible update path measuring 54ms.

Warm Graph View startup improved from 9,917ms to 4,614ms. The latest startup split shows CodeGraphy sends the first graph payload at 1,041ms, then spends most remaining first-ready time in VS Code view and webview frame readiness rather than graph work.

Saved-file updates now stay incremental after the graph has loaded. In the editor-save benchmark, the post-save path measured 39ms from saved-document receipt to request start and 140ms to request completion.
5 changes: 5 additions & 0 deletions .changeset/faster-material-groups.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@codegraphy-dev/extension": patch
---

Default Graph View groups from Material Icon Theme rules now resolve faster in large workspaces. The measured group computation improved from 66ms to 38ms, and total group publish time improved from 71ms to 39ms.
5 changes: 5 additions & 0 deletions .changeset/faster-typescript-aliases.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@codegraphy-dev/plugin-typescript": patch
---

TypeScript alias import analysis now reads `tsconfig` compiler options without enumerating every project file, and it reuses parsed alias configuration until the config changes. On the CodeGraphy monorepo benchmark, this moved cold indexing from 37.27s to 17.28s and file analysis from 23,352ms to 3,697ms.
15 changes: 15 additions & 0 deletions packages/core/src/diagnostics/collector.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import type { DiagnosticEvent, DiagnosticEventSink } from './contracts';

export function collectDiagnosticEvents(enabled: boolean): DiagnosticEventSink & { readonly events: DiagnosticEvent[] } {
const events: DiagnosticEvent[] = [];
return {
get events(): DiagnosticEvent[] {
return events;
},
emit(event: DiagnosticEvent): void {
if (enabled) {
events.push(event);
}
},
};
}
27 changes: 27 additions & 0 deletions packages/core/src/diagnostics/contracts.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
export type DiagnosticContextValue =
| null
| string
| number
| boolean
| DiagnosticContextValue[]
| { [key: string]: DiagnosticContextValue };

export interface DiagnosticEvent {
area: string;
event: string;
context?: Record<string, DiagnosticContextValue>;
}

export interface DiagnosticEventInput {
area: string;
event: string;
context?: Record<string, unknown>;
}

export interface DiagnosticEventSink {
emit(event: DiagnosticEvent): void;
}

export type DiagnosticEventFormatter = (
context: Record<string, DiagnosticContextValue> | undefined,
) => string | undefined;
10 changes: 10 additions & 0 deletions packages/core/src/diagnostics/create.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import type { DiagnosticEvent, DiagnosticEventInput } from './contracts';
import { normalizeContext } from './normalize/context';

export function createDiagnosticEvent(input: DiagnosticEventInput): DiagnosticEvent {
return {
area: input.area,
event: input.event,
...(input.context ? { context: normalizeContext(input.context) } : {}),
};
}
Loading
Loading