qwenproxy-cli 1.6.7 → 1.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9256,7 +9256,6 @@ async function requestQwenPersonalizationInBrowser(accountId, method, path6, hea
9256
9256
  headers,
9257
9257
  payload === void 0 ? void 0 : JSON.stringify(payload),
9258
9258
  {
9259
- settingsPage: true,
9260
9259
  referrer: qwenUrl("/settings/personalization"),
9261
9260
  noMutexRecovery: true
9262
9261
  }
@@ -9364,9 +9363,13 @@ async function createQwenBrowserResponse(accountId, url, method, headers, body,
9364
9363
  if (typeof page.on === "function") {
9365
9364
  const onFrameNavigated = (frame) => {
9366
9365
  if (!settled && typeof page.mainFrame === "function" && frame === page.mainFrame()) {
9366
+ const url2 = typeof frame.url === "function" ? frame.url() : String(frame.url || "");
9367
+ if (url2.startsWith(qwenOrigin()) && !url2.includes("/auth") && !url2.includes("_____tmd_____") && !url2.includes("/punish")) {
9368
+ return;
9369
+ }
9367
9370
  handleBrowserStreamEvent(requestId, {
9368
9371
  type: "error",
9369
- message: "Qwen browser page navigated during stream (session interrupted)",
9372
+ message: "Qwen browser page navigated away during stream",
9370
9373
  errorName: "AbortError"
9371
9374
  });
9372
9375
  }
@@ -9917,7 +9920,6 @@ async function disableNativeTools(accountId) {
9917
9920
  requestHeaders,
9918
9921
  JSON.stringify(payload),
9919
9922
  {
9920
- settingsPage: true,
9921
9923
  referrer: qwenUrl("/settings/personalization")
9922
9924
  }
9923
9925
  );
package/dist/index.js CHANGED
@@ -12446,7 +12446,6 @@ async function requestQwenPersonalizationInBrowser(accountId, method, path21, he
12446
12446
  headers,
12447
12447
  payload === void 0 ? void 0 : JSON.stringify(payload),
12448
12448
  {
12449
- settingsPage: true,
12450
12449
  referrer: qwenUrl("/settings/personalization"),
12451
12450
  noMutexRecovery: true
12452
12451
  }
@@ -12554,9 +12553,13 @@ async function createQwenBrowserResponse(accountId, url, method, headers, body,
12554
12553
  if (typeof page.on === "function") {
12555
12554
  const onFrameNavigated = (frame) => {
12556
12555
  if (!settled && typeof page.mainFrame === "function" && frame === page.mainFrame()) {
12556
+ const url2 = typeof frame.url === "function" ? frame.url() : String(frame.url || "");
12557
+ if (url2.startsWith(qwenOrigin()) && !url2.includes("/auth") && !url2.includes("_____tmd_____") && !url2.includes("/punish")) {
12558
+ return;
12559
+ }
12557
12560
  handleBrowserStreamEvent(requestId, {
12558
12561
  type: "error",
12559
- message: "Qwen browser page navigated during stream (session interrupted)",
12562
+ message: "Qwen browser page navigated away during stream",
12560
12563
  errorName: "AbortError"
12561
12564
  });
12562
12565
  }
@@ -13107,7 +13110,6 @@ async function disableNativeTools(accountId) {
13107
13110
  requestHeaders,
13108
13111
  JSON.stringify(payload),
13109
13112
  {
13110
- settingsPage: true,
13111
13113
  referrer: qwenUrl("/settings/personalization")
13112
13114
  }
13113
13115
  );
@@ -27093,7 +27095,7 @@ function getAppVersion() {
27093
27095
  }
27094
27096
  } catch {
27095
27097
  }
27096
- cachedVersion = "v1.6.7";
27098
+ cachedVersion = "v1.6.8";
27097
27099
  return cachedVersion;
27098
27100
  }
27099
27101
  var cachedVersion;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qwenproxy-cli",
3
- "version": "1.6.7",
3
+ "version": "1.6.8",
4
4
  "description": "High-performance OpenAI & Anthropic compatible API gateway for Qwen with multi-account rotation, interactive TUI, and resilient tool calling.",
5
5
  "main": "src/index.ts",
6
6
  "bin": {
@@ -17,6 +17,6 @@ export function getAppVersion(): string {
17
17
  }
18
18
  }
19
19
  } catch {}
20
- cachedVersion = "v1.6.7";
20
+ cachedVersion = "v1.6.8";
21
21
  return cachedVersion;
22
22
  }
@@ -1225,7 +1225,6 @@ async function requestQwenPersonalizationInBrowser(
1225
1225
  headers,
1226
1226
  payload === undefined ? undefined : JSON.stringify(payload),
1227
1227
  {
1228
- settingsPage: true,
1229
1228
  referrer: qwenUrl("/settings/personalization"),
1230
1229
  noMutexRecovery: true,
1231
1230
  },
@@ -1366,9 +1365,19 @@ async function createQwenBrowserResponse(
1366
1365
  if (typeof (page as any).on === "function") {
1367
1366
  const onFrameNavigated = (frame: any) => {
1368
1367
  if (!settled && typeof (page as any).mainFrame === "function" && frame === (page as any).mainFrame()) {
1368
+ const url = typeof frame.url === "function" ? frame.url() : String(frame.url || "");
1369
+ // Safe SPA in-app routing within Qwen Web (e.g. /c/<id>, /#) must NEVER abort active streams
1370
+ if (
1371
+ url.startsWith(qwenOrigin()) &&
1372
+ !url.includes("/auth") &&
1373
+ !url.includes("_____tmd_____") &&
1374
+ !url.includes("/punish")
1375
+ ) {
1376
+ return;
1377
+ }
1369
1378
  handleBrowserStreamEvent(requestId, {
1370
1379
  type: "error",
1371
- message: "Qwen browser page navigated during stream (session interrupted)",
1380
+ message: "Qwen browser page navigated away during stream",
1372
1381
  errorName: "AbortError",
1373
1382
  });
1374
1383
  }
@@ -2113,7 +2122,6 @@ export async function disableNativeTools(accountId?: string): Promise<void> {
2113
2122
  requestHeaders,
2114
2123
  JSON.stringify(payload),
2115
2124
  {
2116
- settingsPage: true,
2117
2125
  referrer: qwenUrl("/settings/personalization"),
2118
2126
  },
2119
2127
  );