fix(antigravity): scrub internal OmniRoute headers (#1794)

Integrated into release/v3.7.5
This commit is contained in:
Raxxoor
2026-04-30 00:58:54 +01:00
committed by GitHub
parent 5b2d3f13cb
commit 90fca485bc
2 changed files with 20 additions and 3 deletions

View File

@@ -52,7 +52,8 @@ export function scrubProxyAndFingerprintHeaders(
): Record<string, string> {
const cleaned: Record<string, string> = {};
for (const [key, value] of Object.entries(headers)) {
if (!HEADERS_TO_REMOVE.includes(key.toLowerCase())) {
const lowerKey = key.toLowerCase();
if (!lowerKey.startsWith("x-omniroute-") && !HEADERS_TO_REMOVE.includes(lowerKey)) {
cleaned[key] = value;
}
}

View File

@@ -3,6 +3,7 @@ import assert from "node:assert/strict";
import { AntigravityExecutor } from "../../open-sse/executors/antigravity.ts";
import { setCliCompatProviders } from "../../open-sse/config/cliFingerprints.ts";
import { scrubProxyAndFingerprintHeaders } from "../../open-sse/services/antigravityHeaderScrub.ts";
import {
clearAntigravityVersionCache,
seedAntigravityVersionCache,
@@ -43,13 +44,28 @@ test("AntigravityExecutor.buildUrl always targets the streaming endpoint", () =>
);
});
test("AntigravityExecutor.buildHeaders includes auth and SSE accept", () => {
test("AntigravityExecutor.buildHeaders includes native headers without OmniRoute internals", () => {
const executor = new AntigravityExecutor();
const headers = executor.buildHeaders({ accessToken: "ag-token" }, false);
assert.equal(headers.Authorization, "Bearer ag-token");
assert.equal(headers.Accept, "text/event-stream");
assert.equal(headers["X-OmniRoute-Source"], "omniroute");
assert.equal(headers["X-OmniRoute-Source"], undefined);
});
test("Antigravity header scrub removes OmniRoute internal headers", () => {
const headers = scrubProxyAndFingerprintHeaders({
Authorization: "Bearer ag-token",
"X-OmniRoute-Source": "omniroute",
"X-OmniRoute-No-Cache": "true",
"X-Forwarded-For": "127.0.0.1",
});
assert.equal(headers.Authorization, "Bearer ag-token");
assert.equal(headers["X-OmniRoute-Source"], undefined);
assert.equal(headers["X-OmniRoute-No-Cache"], undefined);
assert.equal(headers["X-Forwarded-For"], undefined);
assert.equal(headers["Accept-Encoding"], "gzip, deflate, br");
});
test("AntigravityExecutor.transformRequest normalizes model, project and contents", async () => {