Skip to content

Commit 6c9c9b4

Browse files
committed
Merge branch 'feature/beta'
2 parents c27951c + 401c464 commit 6c9c9b4

File tree

14 files changed

+429
-330
lines changed

14 files changed

+429
-330
lines changed

CHANGELOG.MD

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,38 @@ Use development and beta versions only if you are aware of the potential risks.
44
## Changes since v1.1.59
55
All significant changes in this version are documented here.
66

7-
### ⚠ CHANGES
8-
- Removed duplicate sniff configuration.
9-
107

118
### ✨ Features
12-
- Added a local configuration toggle to enable or disable the drag-and-drop import of local configuration files.
9+
- Added a local configuration switch to enable or disable the drag-and-drop import of local configuration files.
10+
- On macOS, when starting in TUN mode, the default `ulimit` has been adjusted to 65535 as an optimization for scenarios like bypass routing.
11+
12+
13+
### ⚠ CHANGES LOG
14+
- Updated dependencies.
15+
- Removed duplicate sniff configuration.
16+
- Added connection timeout configuration for DNS servers, default value is 5 seconds.
17+
- Unified the speed test URL in the configuration file to `https://www.google.com/generate_204` to prevent cheating during latency checks.
1318

1419
### 🐛 Bug Fixes
15-
- Fixed layout inconsistencies between Windows and macOS.
20+
- Fixed layout inconsistency between Windows and macOS homepages.
21+
- Fixed issue where node list did not refresh when switching between different subscriptions.
22+
1623

1724
## 自 v1.1.59 以来的变更
1825
本版本的所有重要变更将记录于此。
1926

20-
### ⚠ 变更
21-
- 去掉重复 sniff 的配置。
22-
2327
### ✨ 新增功能
2428
- 新增本地配置开关,可以开启或关闭拖拽导入本地配置文件的功能。
29+
- 在 macOS 上以 TUN 模式启动时,默认的 `ulimit` 限制已调整为 65535, 作为旁路由等场景的优化。
30+
31+
32+
### ⚠ 变更日志
33+
- 更新依赖项
34+
- 去掉重复 sniff 的配置
35+
- DNS 服务器添加连接超时配置,默认值为 5 秒
36+
- 统一配置文件中的测速 URL 为 `https://www.google.com/generate_204`,防止检测延迟时作弊
2537

2638

2739
### 🐛 问题修复
28-
- 修复 Windows 与 macOS 布局不一致的问题。
40+
- 修复切换不同订阅时,节点列表未刷新的问题。
41+
- 修复 Windows 与 macOS 主页布局不一致的问题。

bun.lock

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,29 +22,29 @@
2222
"@tauri-apps/plugin-window-state": "^2.4.0",
2323
"bytes": "^3.1.2",
2424
"clsx": "^2.1.1",
25-
"framer-motion": "^12.23.12",
25+
"framer-motion": "^12.23.16",
2626
"react": "^19.1.1",
2727
"react-bootstrap-icons": "^1.11.6",
2828
"react-dom": "^19.1.1",
2929
"sonner": "^2.0.7",
3030
"swr": "^2.3.6",
3131
"tailwindcss": "^4.1.13",
32-
"zod": "^4.1.5",
32+
"zod": "^4.1.9",
3333
},
3434
"devDependencies": {
3535
"@tauri-apps/cli": "^2.8.4",
3636
"@types/bytes": "^3.1.5",
37-
"@types/node": "^22.18.1",
38-
"@types/react": "^19.1.12",
37+
"@types/node": "^22.18.6",
38+
"@types/react": "^19.1.13",
3939
"@types/react-dom": "^19.1.9",
4040
"@types/unzipper": "^0.10.11",
4141
"@vitejs/plugin-react": "^4.7.0",
42-
"daisyui": "^5.1.8",
42+
"daisyui": "^5.1.13",
4343
"husky": "^9.1.7",
4444
"tar": "^7.4.3",
4545
"typescript": "~5.6.3",
4646
"unzipper": "^0.12.3",
47-
"vite": "^6.3.5",
47+
"vite": "^6.3.6",
4848
},
4949
},
5050
},
@@ -291,9 +291,9 @@
291291

292292
"@types/estree": ["@types/[email protected]", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
293293

294-
"@types/node": ["@types/[email protected].1", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-rzSDyhn4cYznVG+PCzGe1lwuMYJrcBS1fc3JqSa2PvtABwWo+dZ1ij5OVok3tqfpEBCBoaR4d7upFJk73HRJDw=="],
294+
"@types/node": ["@types/[email protected].6", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-r8uszLPpeIWbNKtvWRt/DbVi5zbqZyj1PTmhRMqBMvDnaz1QpmSKujUtJLrqGZeoM8v72MfYggDceY4K1itzWQ=="],
295295

296-
"@types/react": ["@types/[email protected].12", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-cMoR+FoAf/Jyq6+Df2/Z41jISvGZZ2eTlnsaJRptmZ76Caldwy1odD4xTr/gNV9VLj0AWgg/nmkevIyUfIIq5w=="],
296+
"@types/react": ["@types/[email protected].13", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ=="],
297297

298298
"@types/react-dom": ["@types/[email protected]", "", { "peerDependencies": { "@types/react": "^19.0.0" } }, "sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ=="],
299299

@@ -319,7 +319,7 @@
319319

320320
"csstype": ["[email protected]", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="],
321321

322-
"daisyui": ["[email protected].9", "", {}, "sha512-ucptlYpiVMiY33VCehYoO1jI3cVjo4TbTKTr+zNG7sV+FO9UFUKiT54mynoUjIwWi2FXxrm0vDPj+2PmXGkXgA=="],
322+
"daisyui": ["[email protected].13", "", {}, "sha512-KWPF/4R+EHTJRqKZFNmSDPfAZ5xeS6YWB/2kS7Y6wGKg+atscUi2DOp6HoDD/OgGML0PJTtTpgwpTfeHVfjk7w=="],
323323

324324
"debug": ["[email protected]", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="],
325325

@@ -339,7 +339,7 @@
339339

340340
"fdir": ["[email protected]", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
341341

342-
"framer-motion": ["[email protected].12", "", { "dependencies": { "motion-dom": "^12.23.12", "motion-utils": "^12.23.6", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-6e78rdVtnBvlEVgu6eFEAgG9v3wLnYEboM8I5O5EXvfKC8gxGQB8wXJdhkMy10iVcn05jl6CNw7/HTsTCfwcWg=="],
342+
"framer-motion": ["[email protected].16", "", { "dependencies": { "motion-dom": "^12.23.12", "motion-utils": "^12.23.6", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-N81A8hiHqVsexOzI3wzkibyLURW1nEJsZaRuctPhG4AdbbciYu+bKJq9I2lQFzAO4Bx3h4swI6pBbF/Hu7f7BA=="],
343343

344344
"fs-extra": ["[email protected]", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g=="],
345345

@@ -395,7 +395,7 @@
395395

396396
"minipass": ["[email protected]", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="],
397397

398-
"minizlib": ["minizlib@3.0.2", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA=="],
398+
"minizlib": ["minizlib@3.1.0", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="],
399399

400400
"mkdirp": ["[email protected]", "", { "bin": { "mkdirp": "dist/cjs/src/bin.js" } }, "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg=="],
401401

@@ -455,7 +455,7 @@
455455

456456
"tapable": ["[email protected]", "", {}, "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg=="],
457457

458-
"tar": ["[email protected].3", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.0.1", "mkdirp": "^3.0.1", "yallist": "^5.0.0" } }, "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw=="],
458+
"tar": ["[email protected].4", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-O1z7ajPkjTgEgmTGz0v9X4eqeEXTDREPTO77pVC1Nbs86feBU1Zhdg+edzavPmYW1olxkwsqA2v4uOw6E8LeDg=="],
459459

460460
"tinyglobby": ["[email protected]", "", { "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" } }, "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ=="],
461461

@@ -479,7 +479,9 @@
479479

480480
"yallist": ["[email protected]", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="],
481481

482-
"zod": ["[email protected]", "", {}, "sha512-rcUUZqlLJgBC33IT3PNMgsCq6TzLQEG/Ei/KTCU0PedSWRMAXoOUN+4t/0H+Q8bdnLPdqUYnvboJT0bn/229qg=="],
482+
"zod": ["[email protected]", "", {}, "sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg=="],
483+
484+
"@tailwindcss/oxide/tar": ["[email protected]", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.0.1", "mkdirp": "^3.0.1", "yallist": "^5.0.0" } }, "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw=="],
483485

484486
"@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/[email protected]", "", { "dependencies": { "@emnapi/wasi-threads": "1.0.4", "tslib": "^2.4.0" }, "bundled": true }, "sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q=="],
485487

@@ -496,5 +498,7 @@
496498
"@types/unzipper/@types/node": ["@types/[email protected]", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w=="],
497499

498500
"lru-cache/yallist": ["[email protected]", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="],
501+
502+
"@tailwindcss/oxide/tar/minizlib": ["[email protected]", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA=="],
499503
}
500504
}

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,26 +29,26 @@
2929
"@tauri-apps/plugin-window-state": "^2.4.0",
3030
"bytes": "^3.1.2",
3131
"clsx": "^2.1.1",
32-
"framer-motion": "^12.23.12",
32+
"framer-motion": "^12.23.16",
3333
"react": "^19.1.1",
3434
"react-bootstrap-icons": "^1.11.6",
3535
"react-dom": "^19.1.1",
3636
"sonner": "^2.0.7",
3737
"swr": "^2.3.6",
3838
"tailwindcss": "^4.1.13",
39-
"zod": "^4.1.5"
39+
"zod": "^4.1.11"
4040
},
4141
"devDependencies": {
4242
"@tauri-apps/cli": "^2.8.4",
4343
"@types/bytes": "^3.1.5",
44-
"@types/node": "^22.18.1",
44+
"@types/node": "^22.18.6",
4545
"@types/unzipper": "^0.10.11",
46-
"@types/react": "^19.1.12",
46+
"@types/react": "^19.1.13",
4747
"@types/react-dom": "^19.1.9",
4848
"@vitejs/plugin-react": "^4.7.0",
49-
"daisyui": "^5.1.9",
49+
"daisyui": "^5.1.13",
5050
"husky": "^9.1.7",
51-
"tar": "^7.4.3",
51+
"tar": "^7.4.4",
5252
"typescript": "~5.6.3",
5353
"unzipper": "^0.12.3",
5454
"vite": "^6.3.6"

scripts/download-binaries.ts

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,18 @@ import unzipper from 'unzipper';
66
import { promisify } from 'util';
77
import { SING_BOX_VERSION } from '../src/types/definition';
88

9-
// 配置常量
109
const BINARY_NAME = 'sing-box';
1110
const GITHUB_RELEASE_URL = 'https://github.com/SagerNet/sing-box/releases/download/';
1211

13-
// sysproxy 下载地址, 仅支持 Windows x64 版本。
12+
// sysproxy download URL, only supports Windows x64 version.
1413
const SYSPROXY_URL = "https://github.com/clash-verge-rev/sysproxy/releases/download/x64/sysproxy.exe";
1514

16-
// 支持的目标架构映射
15+
16+
const SkipVersionList = [
17+
"v1.12.5", //This version of sing - box has DNS issues, skip downloading
18+
];
19+
20+
// Supported target architecture mapping
1721
const RUST_TARGET_TRIPLES = {
1822
"darwin": {
1923
"arm64": "aarch64-apple-darwin",
@@ -33,7 +37,12 @@ type Architecture = keyof typeof RUST_TARGET_TRIPLES[Platform];
3337

3438
async function downloadFile(url: string, dest: string): Promise<void> {
3539
const streamPipeline = promisify(pipeline);
36-
const response = await fetch(url);
40+
const controller = new AbortController();
41+
const timeoutId = setTimeout(() => controller.abort(), 60000); // 60 seconds timeout
42+
43+
const response = await fetch(url, {
44+
signal: controller.signal,
45+
}).finally(() => clearTimeout(timeoutId));
3746

3847
if (!response.ok) {
3948
throw new Error(`Download failed: '${url}' (${response.status})`);
@@ -105,7 +114,7 @@ async function downloadEmbeddingExternalBinaries(): Promise<void> {
105114
targetTriple
106115
);
107116

108-
// 为 Windows x64 下载 sysproxy
117+
// Download sysproxy for Windows amd64
109118
if (platform === 'windows' && arch === 'amd64') {
110119
console.log('Downloading Windows sysproxy...');
111120
const targetPath = `src-tauri/binaries/sysproxy-${targetTriple}${extension}`;
@@ -121,5 +130,11 @@ async function downloadEmbeddingExternalBinaries(): Promise<void> {
121130
}
122131
}
123132

124-
// 执行下载任务
125-
downloadEmbeddingExternalBinaries().catch(console.error);
133+
if (SkipVersionList.includes(SING_BOX_VERSION)) {
134+
console.log(`Skipping download for version ${SING_BOX_VERSION}`);
135+
throw new Error(`Version ${SING_BOX_VERSION} is in the skip list.`);
136+
137+
} else {
138+
downloadEmbeddingExternalBinaries().catch(console.error);
139+
140+
}

0 commit comments

Comments
 (0)