Commit 9f775ad
authored
fix(perf): pass symbolsOnly through parseFilesWasmInline (#1489)
* chore: gitignore napi-generated artifacts in crates/codegraph-core
* chore(tests): remove unused biome suppression in visitor.test.ts
* fix(titan-run): sync --start-from enum and phase-timestamp list with actual phases
* fix(hooks): track Bash file modifications via before/after git status diff
Adds snapshot-pre-bash.sh (PreToolUse Bash) + track-bash-writes.sh
(PostToolUse Bash): the pre-hook captures git status --porcelain to a
per-worktree temp file before each Bash call; the post-hook diffs the
before/after state and appends newly modified or created files to
.claude/session-edits.log.
This closes the gap where files written by sed -i, printf redirects,
tee, heredocs, or build tools (Cargo.lock, lockfiles) were never
recorded, causing guard-git.sh to emit false-positive BLOCKED errors.
Closes #1457
* chore(native): remove dead code (unused var, method, variant, fields)
- clojure.rs: annotate lifetime-anchor assignment to silence false-positive
- cfg.rs: remove never-called start_line_of method
- complexity.rs: remove never-constructed NotHandled variant; convert
irrefutable if-let patterns to plain let destructures
- dataflow.rs: remove never-read callee fields from CallReturn/Destructured
- incremental.rs: remove never-read lang field from CacheEntry
cargo check and cargo clippy both clean after these changes.
* refactor(native): extract emit_pts_alias_edges params into PtsAliasCtx struct
* fix(wasm): sort call targets by confidence before emit to match native engine
* fix(bench): add 2 warmup runs and raise INCREMENTAL_RUNS to 5 for incremental tiers
* ci(bench): add per-PR perf canary for extractor/graph/native changes
Adds .github/workflows/perf-canary.yml — a path-filtered workflow that
fires on PRs touching src/extractors/, src/domain/graph/, or crates/**
and runs only the incremental-benchmark suite (full build + no-op +
1-file rebuild, both engines). Catches the class of regressions that
accumulated invisibly across the Phase 8.x PRs and were only detected
at v3.12.0 publish time.
The regression guard gains BENCH_CANARY=1 mode: raises thresholds to
50%/100%/150% (standard/noisy/WASM) and skips the build, query, and
resolution suites — only incremental checks run. This absorbs shared-
runner timing variance while still blocking catastrophic regressions
(+98% full build, +1827% 1-file rebuild from v3.12.0).
Closes #1433
* fix(perf): plumb symbolsOnly through parseFilesWasmInline to skip analysis visitors
* fix(perf): add parser.ts to canary paths and free WASM tree on symbolsOnly inline path
Guard the inline-path optimization against regressions by adding
src/domain/parser.ts to the perf-canary paths filter — without it the
canary silently skips exactly the file this PR modifies.
Also free the WASM-backed tree when symbolsOnly=true in parseFilesWasmInline.
The tree was being parsed and then discarded without an explicit .delete() call,
leaking WASM linear memory on every incremental rebuild that triggers the inline
path. The deletion is guarded by a typeof check, matching the pattern used by
the extractor-error path at line 1078.1 parent 65bd28a commit 9f775ad
2 files changed
Lines changed: 20 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1198 | 1198 | | |
1199 | 1199 | | |
1200 | 1200 | | |
1201 | | - | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
1202 | 1206 | | |
1203 | 1207 | | |
1204 | 1208 | | |
1205 | 1209 | | |
| 1210 | + | |
1206 | 1211 | | |
1207 | 1212 | | |
1208 | 1213 | | |
| |||
1220 | 1225 | | |
1221 | 1226 | | |
1222 | 1227 | | |
1223 | | - | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
1224 | 1240 | | |
1225 | 1241 | | |
1226 | 1242 | | |
| |||
1246 | 1262 | | |
1247 | 1263 | | |
1248 | 1264 | | |
1249 | | - | |
| 1265 | + | |
1250 | 1266 | | |
1251 | 1267 | | |
1252 | 1268 | | |
| |||
0 commit comments