From e5ff14160184aae57736595e5d6b2526ba85ae83 Mon Sep 17 00:00:00 2001 From: carlos-alm <127798846+carlos-alm@users.noreply.github.com> Date: Sun, 5 Apr 2026 00:43:06 -0600 Subject: [PATCH 1/2] =?UTF-8?q?fix(native):=20lower=20version=20gate=20to?= =?UTF-8?q?=20allow=20native=20orchestrator=20for=20=E2=89=A53.9.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #865 fixed the Rust incremental purge (join-based SQL, correct deletion order, scoped removal detection). The version gate in shouldSkipNativeOrchestrator was set to <= 3.9.0 as a safety measure. Now that the purge is correct, lower the gate to < 3.9.0 so that addon v3.9.0+ uses the native orchestrator path. Closes #866 --- src/domain/graph/builder/pipeline.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/domain/graph/builder/pipeline.ts b/src/domain/graph/builder/pipeline.ts index c9c7b5b2..3354c771 100644 --- a/src/domain/graph/builder/pipeline.ts +++ b/src/domain/graph/builder/pipeline.ts @@ -271,7 +271,7 @@ interface NativeOrchestratorResult { function shouldSkipNativeOrchestrator(ctx: PipelineContext): string | null { if (process.env.CODEGRAPH_FORCE_JS_PIPELINE === '1') return 'CODEGRAPH_FORCE_JS_PIPELINE=1'; if (ctx.forceFullRebuild) return 'forceFullRebuild'; - const orchestratorBuggy = !!ctx.engineVersion && semverCompare(ctx.engineVersion, '3.9.0') <= 0; + const orchestratorBuggy = !!ctx.engineVersion && semverCompare(ctx.engineVersion, '3.9.0') < 0; if (orchestratorBuggy) return `buggy addon ${ctx.engineVersion}`; if (ctx.engineName !== 'native') return `engine=${ctx.engineName}`; return null; From 18fa168803c375678bbf6564826a7b653c796561 Mon Sep 17 00:00:00 2001 From: carlos-alm <127798846+carlos-alm@users.noreply.github.com> Date: Sun, 5 Apr 2026 02:14:34 -0600 Subject: [PATCH 2/2] fix: raise version gate to 3.10.0 to match next addon release (#867) The published v3.9.0 native addon binaries were built before PR #865 merged the Rust incremental purge fixes. Gate on < 3.10.0 so the native orchestrator stays disabled until addon binaries that include the fixes are published. --- src/domain/graph/builder/pipeline.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/domain/graph/builder/pipeline.ts b/src/domain/graph/builder/pipeline.ts index 594b74e5..3fe32d81 100644 --- a/src/domain/graph/builder/pipeline.ts +++ b/src/domain/graph/builder/pipeline.ts @@ -275,7 +275,7 @@ interface NativeOrchestratorResult { function shouldSkipNativeOrchestrator(ctx: PipelineContext): string | null { if (process.env.CODEGRAPH_FORCE_JS_PIPELINE === '1') return 'CODEGRAPH_FORCE_JS_PIPELINE=1'; if (ctx.forceFullRebuild) return 'forceFullRebuild'; - const orchestratorBuggy = !!ctx.engineVersion && semverCompare(ctx.engineVersion, '3.9.0') < 0; + const orchestratorBuggy = !!ctx.engineVersion && semverCompare(ctx.engineVersion, '3.10.0') < 0; if (orchestratorBuggy) return `buggy addon ${ctx.engineVersion}`; if (ctx.engineName !== 'native') return `engine=${ctx.engineName}`; return null;