Merge branch 'dev' into pr/tray-latency-test · clash-verge-rev/clash-verge-rev@b5af9cb · GitHub
Skip to content

Commit b5af9cb

Browse files
authored
Merge branch 'dev' into pr/tray-latency-test
2 parents a18ee8d + 07b0e71 commit b5af9cb

186 files changed

Lines changed: 5489 additions & 3083 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.devcontainer/devcontainer.json‎

Lines changed: 1 addition & 1 deletion
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Backend Guardrails
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- "src-tauri/**"
7+
- ".github/workflows/backend-guardrails.yml"
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
banned-patterns:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v7
18+
19+
- name: No Handle::refresh calls in feat
20+
run: '! grep -rn "Handle::refresh" src-tauri/src/feat'
21+
22+
- name: No notice_message outside core/notify
23+
run: '! grep -rn "notice_message(" src-tauri/src --include="*.rs" | grep -v "core/notify"'
24+
25+
- name: No manual update-flag chains
26+
run: '! grep -rnE "determine_update_flags|UpdateFlags" src-tauri/src'

‎.github/workflows/frontend-check.yml‎

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,82 @@ jobs:
8585
- name: Run Knip
8686
if: steps.check_frontend.outputs.frontend == 'true'
8787
run: pnpm knip:check
88+
89+
- name: Architecture gates (listen/emit only in the event bus, invoke only in services)
90+
if: steps.check_frontend.outputs.frontend == 'true'
91+
run: node scripts/check-architecture.mjs listen emit invoke
92+
93+
contract-parity:
94+
runs-on: ubuntu-26.04
95+
steps:
96+
- uses: actions/checkout@v7
97+
98+
- name: Check contract inputs
99+
id: check_inputs
100+
uses: dorny/paths-filter@v4
101+
with:
102+
filters: |
103+
contract:
104+
- 'src/services/contract.ts'
105+
- 'scripts/gen-contract.mjs'
106+
- 'src-tauri/src/core/notify/**'
107+
- 'src-tauri/src/bin/**'
108+
- 'src-tauri/src/lib.rs'
109+
- '.github/workflows/frontend-check.yml'
110+
111+
- name: Skip if contract inputs unchanged
112+
if: steps.check_inputs.outputs.contract != 'true'
113+
run: echo "No contract inputs changed, skipping parity check."
114+
115+
- name: Install Rust Stable
116+
if: steps.check_inputs.outputs.contract == 'true'
117+
uses: dtolnay/rust-toolchain@master
118+
with:
119+
toolchain: stable
120+
121+
- name: Rust Cache
122+
if: steps.check_inputs.outputs.contract == 'true'
123+
uses: Swatinem/rust-cache@v2
124+
with:
125+
prefix-key: 'v1-rust'
126+
key: 'rust-shared-stable-ubuntu-22.04-x86_64-unknown-linux-gnu-contract'
127+
workspaces: |
128+
. -> target
129+
cache-all-crates: true
130+
cache-workspace-crates: true
131+
132+
- name: Install dependencies
133+
if: steps.check_inputs.outputs.contract == 'true'
134+
run: |
135+
sudo apt-get update
136+
sudo apt-get install -y libxslt1.1 libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf
137+
138+
- name: Install pnpm
139+
if: steps.check_inputs.outputs.contract == 'true'
140+
uses: pnpm/action-setup@v6
141+
with:
142+
run_install: false
143+
144+
- uses: actions/setup-node@v7
145+
if: steps.check_inputs.outputs.contract == 'true'
146+
with:
147+
node-version: '24.21.0'
148+
cache: 'pnpm'
149+
150+
- run: pnpm install --frozen-lockfile
151+
if: steps.check_inputs.outputs.contract == 'true'
152+
153+
- name: Provision sidecar placeholders for tauri-build
154+
if: steps.check_inputs.outputs.contract == 'true'
155+
run: |
156+
mkdir -p src-tauri/sidecar src-tauri/resources dist
157+
touch dist/index.html
158+
for bin in clash-verge-service clash-verge-service-install clash-verge-service-uninstall verge-mihomo verge-mihomo-alpha; do
159+
touch "src-tauri/sidecar/${bin}-x86_64-unknown-linux-gnu"
160+
done
161+
162+
- name: Regenerate contract and require empty diff
163+
if: steps.check_inputs.outputs.contract == 'true'
164+
run: |
165+
pnpm gen:contract
166+
git diff --exit-code -- src/services/contract.ts

‎.tool-versions‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
nodejs 24.21.0
2-
pnpm 12.8.1
2+
pnpm 12.9.1
33
rust 1.99.0

‎Cargo.lock‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Changelog.md‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,23 @@
33
<details>
44
<summary><strong> 🐞 修复问题 </strong></summary>
55

6+
- 修复端口设置混淆保存值与运行值、输入无效时缺少提示的问题
67
- 修复从开始菜单再次打开应用后,窗口反复弹出并提示启动失败的问题
78
- 修复多个代理集合包含同名节点时,代理组中的节点变灰并显示 ambiguous、无法选择的问题
9+
- 修复手动更新时重复下载后台已下载的安装包、启动时选「稍后」后每次启动都重新下载的问题
10+
- 修复下载更新时镜像缓慢或卡住不会切换下载地址、点击「取消」无法中止下载的问题
11+
- 修复关闭「自动检查更新」后,启动时仍弹出已下载更新的安装提示的问题
12+
- 修复从 Dock 退出、注销或关机时,应用可能长时间卡住无法退出的问题
813

914
**🖥️ Windows**
1015

1116
- 修复 Windows 升级后因文件权限异常无法启动、需要手动清理配置的问题
1217
- 修复 Windows 服务启动类型被改为手动后,软件启动卡住约两分钟的问题,并提供一键修复
1318

19+
**🍎 macOS**
20+
21+
- 修复 macOS 关闭 TUN 或退出后,系统 DNS 仍停留在 `114.114.114.114` 导致无法解析域名的问题
22+
1423
</details>
1524

1625
<details>
@@ -24,6 +33,7 @@
2433
<details>
2534
<summary><strong> 🚀 优化改进 </strong></summary>
2635

36+
- 优化端口设置窗口的实现,精简重复代码
2737
- 优化侧边栏流量图表的 CPU 占用
2838

2939
**🖥️ Windows**

‎README.md‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ A Clash Meta GUI based on <a href="https://github.com/tauri-apps/tauri">Tauri</a
3131
请到发布页面下载对应的安装包:[Release page](https://github.com/clash-verge-rev/clash-verge-rev/releases)<br>
3232
Go to the [Release page](https://github.com/clash-verge-rev/clash-verge-rev/releases) to download the corresponding installation package<br>
3333
Supports Windows (x64/x86), Linux (x64/arm64) and macOS 11+ (intel/apple).
34+
支持 Windows (x64/x86)、Linux (x64/arm64) 和 macOS 11+ (intel/apple)。
3435

3536
#### 我应当怎样选择发行版
3637

@@ -50,14 +51,14 @@ Supports Windows (x64/x86), Linux (x64/arm64) and macOS 11+ (intel/apple).
5051

5152
### ✈️ [AI云边 -- 全新架构机场 ClaudeBorder](https://cruise.54678999.xyz/#/register?code=58q5UJZc)
5253

53-
🔥热销中使用本链接注册即送 3 天免费试用**,每日 **1GB 流量**:👉 [点此注册](https://cruise.54678999.xyz/#/register?code=58q5UJZc)
54+
🔥热销中使用本链接注册即送 **3 天免费试用**,每日 **1GB 流量**:👉 [点此注册](https://cruise.54678999.xyz/#/register?code=58q5UJZc)
5455

5556
#### AI云边 -- 全新架构机场。
5657

5758
- 💻 多次**技术迭代后**全新亮相。
5859
- 🗺 全**高速稳定**正价节点。
5960
- 🌏 **海外团队**,不跑路
60-
- 🚀 线路**冗余**设计,自动化运维**对抗各类封锁
61+
- 🚀 线路**冗余**设计,**自动化运维**对抗各类封锁
6162
- 👨‍🦲 团队架构师为**大厂**网络架构师
6263
- 💰 极致**稳定**,亲民价**价格**
6364
- 🌐 全面支持**流媒体及各AI访问**

‎crates/clash-verge-i18n/locales/de.yml‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ notifications:
88
body: Auf {mode} umgeschaltet.
99
systemProxyToggled:
1010
title: Systemproxy
11-
'on': System proxy has been enabled.
12-
'off': System proxy has been disabled.
11+
'on': Der Systemproxy wurde aktiviert.
12+
'off': Der Systemproxy wurde deaktiviert.
1313
systemProxyFailed:
1414
title: Systemproxy
1515
body: Der Systemproxy konnte nicht gesetzt werden. Öffnen Sie Clash Verge, um zu sehen, warum.
@@ -18,8 +18,8 @@ notifications:
1818
body: Nach mehreren Fehlversuchen in Folge gestoppt. Öffnen Sie Clash Verge, um zu sehen, warum.
1919
tunModeToggled:
2020
title: TUN-Modus
21-
'on': TUN mode has been enabled.
22-
'off': TUN mode has been disabled.
21+
'on': Der TUN-Modus wurde aktiviert.
22+
'off': Der TUN-Modus wurde deaktiviert.
2323
lightweightModeEntered:
2424
title: Leichtmodus
2525
body: Leichtmodus aktiviert.
@@ -30,10 +30,10 @@ notifications:
3030
title: Beenden steht bevor
3131
body: Clash Verge wird gleich beendet.
3232
updateReady:
33-
title: Clash Verge Update
34-
body: A new version (v{version}) has been downloaded and is ready to install.
35-
installNow: Install Now
36-
later: Later
33+
title: Clash-Verge-Update
34+
body: Eine neue Version (v{version}) wurde heruntergeladen und kann installiert werden.
35+
installNow: Jetzt installieren
36+
later: Später
3737
service:
3838
adminInstallPrompt: Für die Installation des Clash-Verge-Dienstes sind Administratorrechte erforderlich.
3939
adminUninstallPrompt: Für die Deinstallation des Clash-Verge-Dienstes sind Administratorrechte erforderlich.

‎knip.json‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
"ignoreBinaries": ["rustc", "cc"],
1818
"ignoreDependencies": ["lint-staged"],
1919
"ignoreIssues": {
20-
"src/types/generated/**": ["exports", "types"]
20+
"src/types/generated/**": ["exports", "types"],
21+
"src/services/contract.ts": ["exports", "types"]
2122
},
2223
"cycles": {
2324
"dynamicImports": true

‎package.json‎

Lines changed: 4 additions & 2 deletions

0 commit comments

Comments
 (0)