You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* perf(native): fix incremental rebuild regression by lowering orchestrator version gate
The v3.9.1 native addon includes all incremental purge fixes from PR #865,
but the orchestrator version gate was raised to < 3.10.0 in PR #867 (because
the v3.9.0 prebuilt binaries were built before those fixes). This forced the
slower JS pipeline path for all v3.9.x addon versions, causing:
- No-op rebuild: 6ms → 15ms (+150%) — JS collectFiles + detectChanges slower
than Rust orchestrator's equivalent
- 1-file rebuild: 527ms → 757ms (+44%) — JS pipeline adds nativeDb open/close
cycles + JS-side resolve/edges instead of single Rust pass
Fix: lower the gate from < 3.10.0 to < 3.9.1, re-enabling the Rust
orchestrator for v3.9.1+ addon binaries.
Additionally, skip nativeDb open/close cycles in the JS pipeline fallback for
small incremental builds (≤5 files). The WAL checkpoint + connection churn
(~5-10ms) exceeds bulk-insert savings for a handful of files.
Closes#882
* refactor: extract smallFilesThreshold to DEFAULTS.build config (#888)
Replace hardcoded `<= 5` threshold across pipeline stages with
`config.build.smallFilesThreshold` from DEFAULTS, consolidating
five scattered magic numbers into one configurable constant.
* fix: use allSymbols.size instead of fileSymbols.size for smallIncremental guard
ctx.fileSymbols is an empty Map when the smallIncremental check runs
(populated later inside insertNodes). This caused every non-full build
to be treated as small incremental, skipping reopenNativeDb for all
incremental builds. Use ctx.allSymbols.size which parseFiles populates
before this check.
0 commit comments